Подтвердить что ты не робот

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

Я пытаюсь установить 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?

4b9b3361

Ответ 1

Убедитесь, что вы удалили тег комментария и изменили 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.

Ответ 2

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

Ответ 3

Введите 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 >.

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

Решение, которое работало для меня, заключалось в установке моего 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

Ответ 7

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

export JAVA_HOME=/usr/java/default

Ответ 8

В некоторых дистрибутивах (CentOS/OpenSuSe,...) будет работать, только если вы установите JAVA_HOME в среде /etc/.

Ответ 9

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

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

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

  1. Вы уже настроили java и env (успех echo $JAVA_HOME)
  2. правильный конфиг hadoop

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

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

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

Ответ 10

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

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

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