Hadoop – / usr / bin / hadoop:第320行:/ usr / bin / java / bin / java:不是目录

我正在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 

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) 

设置JAVA_HOME

 vi /etc/hadoop/hadoop-env.sh 


导出JAVA_HOME = / usr / bin / java / bin / java

导出JAVA_HOME = / usr / bin / java

 [root@localhost ~]# . /etc/hadoop/hadoop-env.sh [root@localhost ~]# echo $JAVA_HOME /usr/bin/java 

但Hadoop仍然失败,因为它有旧的不正确的Javapath

 [root@localhost ~]# /usr/bin/hadoop version /usr/bin/hadoop: line 320: /usr/bin/java/bin/java: Not a directory 

我如何纠正这个错误信息?

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

 # export JAVA_HOME="/usr" # /usr/bin/hadoop version 

JAVA_HOME必须始终指向java安装的主目录,实际上不build议将/ usr设置为/ usr。 另外,如果安装在你上面的其他应用程序可能依赖于JAVA_HOME,那么它会指向/usr/java/jdk1.7(fox ex)。

export JAVA_HOME = / usr / java / jdk1.7(你可以在/etc/hadoop/hadoop-env.sh中做到这一点)。

另外,将hadoop Binariespath(例如/ usr / local / hadoop / bin)添加到$ PATH中,您只需键入命令而不是命令的完整path即可。

如前所述,通过设置真正的Java位置而不是链接来解决问题,find它:

(用前一个的结果replace2,3的path)

 $ which java $ ls -alh /usr/bin/java $ ls -alh /etc/alternatives/java 

现在你可以在你的.bashrc或.profile文件或者你需要的地方进行设置。

 export JAVA_HOME=/usr/lib/jvm/java-8-oracle export PATH=$PATH:$JAVA_HOME