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
?
Ответы
Ответ 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
Проверьте это раньше:
- Вы уже настроили java и env (успех
echo $JAVA_HOME
) - правильный конфиг 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 → Пробел между Программой и файлами вызовет указанную выше проблему, Если вы удалите пробел, это не приведет к ошибке.