Hadoop - /usr/bin/hadoop: line 320: /usr/bin/java/bin/java: 不是目录

dav*_*jhp 3 hadoop

我正在 CentOS 6.4 上安装 Hadoop。
按照这些说明http://hadoop.apache.org/docs/stable/single_node_setup.html

wget http://apache.osuosl.org/hadoop/common/hadoop-1.1.2/hadoop-1.1.2-1.x86_64.rpm
chmod 700 hadoop-1.1.2-1.x86_64.rpm
rpm -Uvh hadoop-1.1.2-1.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)

Java 位于 /usr/bin/java

[root@localhost ~]# /usr/bin/java -version
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
Run Code Online (Sandbox Code Playgroud)

设置 JAVA_HOME

vi /etc/hadoop/hadoop-env.sh 
Run Code Online (Sandbox Code Playgroud)


export JAVA_HOME=/usr/bin/java/bin/java
更改为
export JAVA_HOME=/usr/bin/java

[root@localhost ~]# . /etc/hadoop/hadoop-env.sh
[root@localhost ~]# echo $JAVA_HOME
/usr/bin/java
Run Code Online (Sandbox Code Playgroud)

但是 Hadoop 仍然失败,因为它有旧的不正确的 Java 路径

[root@localhost ~]# /usr/bin/hadoop version
/usr/bin/hadoop: line 320: /usr/bin/java/bin/java: Not a directory
Run Code Online (Sandbox Code Playgroud)

如何更正此错误消息?

小智 5

JAVA HOME只需要设置为/usr以便添加bin/java将使您到达正确的位置。

# export JAVA_HOME="/usr"
# /usr/bin/hadoop version
Run Code Online (Sandbox Code Playgroud)