Я пытаюсь установить Hadoop и запустить его. И я уверен, что успешно установил Hadoop и отформатировал namenode. Однако, когда я попытался запустить start-dfs.sh, я получил следующую ошибку:

localhost: запуск namenode, вход в /usr/local/hadoop/logs/hadoop-wenruo-namenode-linux.out localhost: / usr / local / hadoop / bin / hdfs: строка 304: / usr / local / hadoop / usr / lib / jvm / java-8-oracle / bin / java: нет такого файла или каталога

Мой JAVA_HOME ниже:

эхо $ JAVA_HOME / usr / lib / jvm / java-7-openjdk-amd64

Мой файл hadoop-env.sh:

экспорт JAVA_HOME = $ {JAVA_HOME}

Как Hadoop все еще ищет JDK8, если я уже установил JAVA_HOME на JDK7?

Большое спасибо.

0
wenruo 27 Ноя 2016 в 19:29

2 ответа

Лучший ответ

Оставь это. Проблема устранена. В hadoop-env.sh я изменил экспорт JAVA_HOME = $ {JAVA_HOME} на echo $ JAVA_HOME / usr / lib / jvm / java-7-openjdk-amd64. Похоже, $ {JAVA_HOME} не работает.

0
wenruo 12 Дек 2016 в 15:05

Как правило, в каждом дистрибутиве / версии Hadoop должно быть несколько базовых файлов сценариев, которые устанавливают эту переменную среды JAVA_HOME, например файл yarn-env.sh, если у вас есть yarn.

Также в зависимости от вашей версии hadoop у вас также может быть путь в файлах * -site.xml, таких как hdfs-site.xml, core-site.xml, yarn-site.xml, mapred-site.xml и некоторых других. в зависимости от того, какие услуги у вас есть. Скорее всего, при обновлении hadoop-env.sh файлы конфигурации клиента не были восстановлены, если вы не сделали это через приложение диспетчера кластеров, а затем повторно развернули файлы конфигурации клиента.

Иногда я также могу использовать исполняемый файл system bin / java. Вы можете использовать следующую команду, чтобы узнать, какая java ваша ОС находится в вашем bin / path.

Readlink -f / usr / bin / java / usr / bin / java -version

Вы также обновили hadoop-env.sh на каждом узле, а затем перезапустили все службы, чтобы убедиться, что он снова загружен?

0
Blake Russo 27 Ноя 2016 в 18:59