Hadoop

Hadoop - /usr/bin/hadoop:第 320 行:/usr/bin/java/bin/java:不是目錄

  • November 22, 2018

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

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

但是 Hadoop 仍然失敗,因為它有舊的不正確的 Java 路徑

[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 安裝的主目錄,實際不建議設置為 /usr。此外,如果您的機器上安裝的任何其他應用程序可能依賴於 JAVA_HOME,它會期望它指向 /usr/java/jdk1.7 (fox ex)。

export JAVA_HOME=/usr/java/jdk1.7(您可以在/etc/hadoop/hadoop-env.sh 中執行此操作)。

此外,將 hadoop 二進製文件位置的路徑(例如 /usr/local/hadoop/bin)添加到 $PATH 將使您只需鍵入命令而不是命令的完整路徑。

引用自:https://serverfault.com/questions/515973