Назад | Перейти на главную страницу

Hadoop - / usr / bin / hadoop: строка 320: / usr / bin / java / bin / java: не каталог

Я устанавливаю Hadoop на CentOS 6.4.
Следуя этим инструкциям 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 по-прежнему не работает, поскольку у него старый неправильный путь 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 позволит вам просто ввести команду вместо полного пути к ней.

Как уже упоминалось, проблема решается путем установки реального местоположения Java вместо ссылки на него, чтобы найти его:

(Замените путь 2,3 на результат предыдущего)

$ 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