Hadoop с openjdk: ошибка в start-dfs.sh (SSH?) - PullRequest
0 голосов
/ 23 мая 2018

Я столкнулся с проблемой при настройке 4-кластерной архитектуры hadoop, следуя этому руководству У меня есть 4 следующие машины (виртуализированные):

  • мастер-узел
  • узел1
  • узел2
  • узел3

Я установил все свои файлы conf на master-узле и экспортировал их в другие с помощью scp.Главный узел может получить доступ к подчиненным узлам через ssh.Я установил JAVA_HOME в .bashrc на всех машинах.Тем не менее, вот что я получаю:

hadoop@master-node:~$ start-dfs.sh
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/home/hadoop/hadoop/share/hadoop/common/lib/hadoop-auth-2.8.4.jar) to method sun.security.krb5.Config.getInstance()
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.security.authentication.util.KerberosUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Starting namenodes on [node-master]
node-master: ssh: connect to host node-master port 22: Connection timed out
node1: Error: JAVA_HOME is not set and could not be found.
node2: Error: JAVA_HOME is not set and could not be found.
node3: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]
hadoop@0.0.0.0's password: 
0.0.0.0: Error: JAVA_HOME is not set and could not be found.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.hadoop.security.authentication.util.KerberosUtil (file:/home/hadoop/hadoop/share/hadoop/common/lib/hadoop-auth-2.8.4.jar) to method sun.security.krb5.Config.getInstance()
WARNING: Please consider reporting this to the maintainers of org.apache.hadoop.security.authentication.util.KerberosUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

[3 возможности] Кажется, есть проблема с использованием openJDK 11, хотя я не совсем уверен, что именно это и вызывает этот беспорядок.Ошибки предполагают проблему с ssh, но я) я загрузил свои файлы conf без проблем и ii) я могу получить доступ ко всем узлам с главного узла.Может ли это иметь какое-либо отношение к способу установки пути JAVA_HOME?Вот конец моего .bashrc:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=PATH:$PATH/bin

Заранее благодарен за каждое руководство (я не очень много использую java и чувствую себя немного потерянным)

[edit]с OracleJDK8

hadoop@master-node:~$  readlink -f /usr/bin/java
/usr/lib/jvm/java-8-oracle/jre/bin/java
hadoop@master-node:~$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
hadoop@master-node:~$ start-dfs.sh
Starting namenodes on [node-master]
node-master: ssh: connect to host node-master port 22: Connection timed out
node1: Error: JAVA_HOME is not set and could not be found.
node3: Error: JAVA_HOME is not set and could not be found.
node2: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]
hadoop@0.0.0.0's password: 

0.0.0.0: Ошибка: JAVA_HOME не установлен и не может быть найден.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

нашел это !!!!!!Оказывается, JAVA_HOME теряется через ssh-соединение (почему, я не знаю. Это привело меня к ответу )

Чтобы преодолеть проблему,

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

также следует добавить к

hadoop/etc/hadoop/hadoop-env.sh
0 голосов
/ 23 мая 2018

Вы можете экспортировать путь, например,

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

Затем вам нужно выполнить следующие команды, чтобы убедиться, что ваш PATH содержит переменную JAVA_HOME.После добавления переменной JAVA & PATH в файл .bashrc выполните следующую команду:

source ~/.bashrc

Затем проверьте echo $PATH, если значение содержит значение JAVA_HOME, то оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...