Hadoop: «ОШИБКА: JAVA_HOME не установлен» - PullRequest
38 голосов
/ 12 января 2012

Я пытаюсь установить Hadoop на Ubuntu 11.10.Я устанавливаю переменную JAVA_HOME в файле conf/hadoop-env.sh на:

# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

и затем выполняю эти команды (Автономная операция):

$ mkdir input 
$ cp conf/*.xml input 
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
$ cat output/*

, но у меня возникает следующая ошибкапри выполнении третьей команды:

ОШИБКА: JAVA_HOME не установлен

Правильно ли установлена ​​переменная JAVA_HOME?

Ответы [ 9 ]

50 голосов
/ 28 июня 2012

Убедитесь, что вы удалили тег комментария и изменили JAVA_HOME в hadoop-env.sh, а также соответствующие .bashrc и / или .profile:

# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

должно быть

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

Вы можете установить JAVA_HOME и PATH для всех пользователей (убедитесь, что вы ранее не указывали неправильный путь) в /etc/profile.

Кроме того, не забудьте активировать новое изменение, выйдя из системы или выполнив команду source /etc/profile.

30 голосов
/ 15 октября 2012

Вы должны установить JAVA_HOME в файле hadoop-env.sh, который также находится в каталоге конфигурации Hadoop. По умолчанию строка настроек JAVA_HOME комментируется.

12 голосов
/ 12 января 2012

Введите echo $JAVA_HOME в своем терминале, чтобы убедиться, что ваш JAVA_HOME установлен.

Вы также можете ввести java -version, чтобы узнать, какую версию Java вы на самом деле используете.

Кстати, читая ваше описание, вы на самом деле пишете

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

в файле conf/hadoop-env.sh, вы должны написать это в своем терминале или в ~/.bashrc или ~/.profile, а затем набрать source < path to modified file >.

7 голосов
/ 11 ноября 2014

Вы можете добавить в свой .bashrc файл:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

, и он будет динамически изменяться при обновлении ваших пакетов.

1 голос
/ 20 сентября 2018

Решение, которое работало для меня, заключалось в установке моего JAVA_HOME в /etc/environment

Хотя JAVA_HOME можно установить в файлах / etc / profile, предпочтительное расположение для JAVA_HOME или любой системыпеременная /etc/environment.

Откройте / etc / environment в любом текстовом редакторе, например nano или vim, и добавьте следующую строку:

JAVA_HOME="/usr/lib/jvm/your_java_directory"

Загрузка переменных:

source /etc/environment

Проверьте, правильно ли загружена переменная:

echo $JAVA_HOME
1 голос
/ 27 ноября 2015

Скопируйте этот export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk в hadoop-env.sh файл.

JAVA_HOME - место, где присутствуют двоичные файлы Java.

0 голосов
/ 15 апреля 2019

Я решил это в моем env, без изменения hadoop-env.sh

Лучше использовать /bin/bash в качестве оболочки по умолчанию, а не /bin/sh

Проверьте это раньше:

  1. У вас уже есть конфигурация java и env (успех echo $JAVA_HOME)
  2. right config hadoop

echo $SHELL в каждом узле, проверьте, печатается ли /bin/bashесли нет, vi /etc/passwd, добавьте /bin/bash в хвосте вашего имени пользователя ref

Изменение оболочки по умолчанию в Linux

https://blog.csdn.net/whitehack/article/details/51705889

0 голосов
/ 31 декабря 2015

Я попробовал вышеуказанные решения, но на меня сработало следующее

export JAVA_HOME=/usr/java/default
0 голосов
/ 12 февраля 2014
  • hadoop ERROR: JAVA_HOME не установлен

Выше ошибка из-за пробела между двумя словами.

Например: Java, расположенная в C: \ Program Files \ Java -> Пробел между Программными и файлами может вызвать вышеуказанную проблему. Если вы удалите пробел, он не будет отображать ошибки.

...