Процессы NodeManager и ResourceManager не запускаются

Я настраиваю многоузловой кластер, и мои процессы NodeManager и ResourceManager по какой-то причине не запускаются, и я не могу понять, почему. Когда я запускаю команду jps, я вижу только процессы NameNode, SecondaryNameNode и JPS. В результате моя работа MapReduce не будет работать. Это моя конфигурация

yarn-site.xml - через NameNode и DataNodes

<configuration>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>ec2PathToMyNameNode.compute-1.amazonaws.com</value>
  </property>
</configuration>

И мой файл hosts находится на NameNode:

nameNodeIP nameNodePublicDNS.compute-1.amazonaws.com
dataNode1IP dataNode1PublicDNS.compute-1.amazonaws.com
dataNode2IP dataNode2PublicDNS.compute-1.amazonaws.com
dataNode3IP dataNode3PublicDNS.compute-1.amazonaws.com
127.0.0.1 localhost

Когда я запускаю задание MapReduce, он сообщает, что не может подключиться к 8032. Я использую Hadoop 3.1.2

Изменить:

Я проверил журналы и обнаружил следующее исключение:

Вызвано: java.lang.ClassNotFoundException: javax.activation.DataSource в java.base / jdk.internal.loader.BuiltinClassLoader.loadClass (BuiltinClassLoader.java:583) в java.base / jdk.internal.loader.ClassLoader $ App. loadClass (ClassLoaders.java:190) в java.base / java.lang.ClassLoader.loadClass (ClassLoader.java:499) ... еще 83

Ошибка внедрения конструктора, java.lang.NoClassDefFoundError: javax / activation / DataSource в org.apache.hadoop.yarn.server.resourcemanager.webapp.JAXBContextResolver. (JAXBContextResolver.java:41) в org.apache.hadoop. resourcemanager.webapp.RMWebApp.setup (RMWebApp.java:54) при поиске org.apache.hadoop.yarn.server.resourcemanager.webapp.JAXBContextResolver

1 ошибка в com.google.inject.internal.InjectorImpl $ 2.get (InjectorImpl.java:1025) в com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1051) в com.sun.jersey.guice. spi.container.GuiceComponentProviderFactory $ GuiceInstantiatedComponentProvider.getInstance (GuiceComponentProviderFactory.java:345)


person Namorange    schedule 03.03.2019    source источник
comment
какая команда используется для запуска hadoop; start-dfs.sh или start-all.sh?   -  person Hadi    schedule 03.03.2019
comment
Я использовал оба, лол. Не был уверен, что лучше.   -  person Namorange    schedule 03.03.2019
comment
какой каталог журналов вы указали? проверьте значение глобальной переменной HADOOP_LOG_DIR   -  person Hadi    schedule 03.03.2019
comment
Вы должны проверить каталог журналов Hadoop, он содержит ошибки, выдаваемые Nodemanager и resourcemanager при попытке запуска.   -  person Hadi    schedule 03.03.2019
comment
Я установил только HADOOP_CONF_DIR и HADOOP_HOME. Нужно ли мне выполнять форматирование hdfs в определенном каталоге?   -  person Namorange    schedule 03.03.2019
comment
Какую версию hadoop вы используете   -  person Hadi    schedule 03.03.2019
comment
Пожалуйста, проверьте мои изменения для сообщения журнала.   -  person Namorange    schedule 03.03.2019
comment
Есть еще исключения, можете ли вы их предоставить?   -  person Hadi    schedule 03.03.2019
comment
Хорошо, только что сделал.   -  person Namorange    schedule 03.03.2019
comment
Попробуйте поискать эти исключения, я нашел несколько ссылок, которые могут помочь: (1) проблемы с . apache.org/jira/browse/HADOOP-14978 (2) jira. apache.org/jira/browse/YARN-8802   -  person Hadi    schedule 03.03.2019
comment
Спасибо, вы помогли мне разобраться. Я бы не подумал о журналах.   -  person Namorange    schedule 03.03.2019
comment
Я постараюсь суммировать все, что мы упомянули в комментариях, в хорошо отформатированном ответе, чтобы другие пользователи могли легко извлечь из этого пользу, и вам нужно будет написать свой собственный ответ, когда вы решите проблему.   -  person Hadi    schedule 03.03.2019
comment
проверьте третье предложение в моем ответе, я не упомянул об этом в комментариях, также проверьте ссылки, которые я предоставил   -  person Hadi    schedule 03.03.2019


Ответы (3)


Пытаюсь разобраться в проблеме

(1) Start-dfs.sh против Start-all.sh

Убедитесь, что вы используете команду Start-all.sh, когда пытаетесь запустить hadoop, потому что Start-dfs.sh запустит только namenode и datanodes.

(2) Проверьте журналы Hadoop

Проверьте значение глобальной переменной HADOOP_LOG_DIR, чтобы получить каталог журнала, потому что он будет включать все исключения, возникающие при попытке запустить диспетчер Namenode Manager и диспетчер ресурсов.

(3) Проверьте установленную версию Java.

Ошибка может быть вызвана несовместимой версией Java, убедитесь, что у вас установлена ​​последняя версия Java.

(4) Проверьте распространенные проблемы Hadoop

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


Дополнительная информация

Для получения дополнительной информации вы можете проверить мою статью о Medium, она может дать вам некоторые идеи:

person Hadi    schedule 03.03.2019

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

так что я делаю

1.rm / Library / Java / *

2. загрузите java8 с https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.

3. установите java8jdk и

4. исправьте JAVA_HOME в hadoop-env.sh

5.stop-all.sh

6.start-dfs.sh

7.start-yarn.sh

person Юрий Скворцов    schedule 31.07.2020
comment
Дополнительные объяснения того, что делает каждый шаг или какова его цель, были бы чрезвычайно полезны! - person Jenea Vranceanu; 31.07.2020

[pdash @ localhost hadoop] $ export YARN_RESOURCEMANAGER_OPTS = "- add-modules = ALL-SYSTEM" [pdash @ localhost hadoop] $ export YARN_NODEMANAGER_OPTS = "- add-modules = ALL-SYSTEM"

Это наверняка будет работать. Я пробовал из журнала apache JIRA .... Спасибо PRAFUL

person PRAFULLA KUMAR DASH    schedule 30.07.2019