NodeManager和ResourceManager进程无法启动

时间:2019-03-03 18:53:26

标签: java amazon-web-services hadoop mapreduce yarn

我正在设置一个多节点集群,并且由于某些原因我的NodeManager和ResourceManager进程没有启动,并且我不知道为什么。当我运行jps命令时,我只看到NameNodeSecondaryNameNodeJPS进程。结果,我的MapReduce工作无法正常工作。这是我的配置

yarn-site.xml-跨NameNode和DataNode

<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>

我的主机文件是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.ClassLoaders $ AppClassLoader.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.yarn.server.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)

3 个答案:

答案 0 :(得分:1)

试图找出问题所在

(1)Start-dfs.sh与Start-all.sh

在尝试启动hadoop时,请检查您是否正在使用Start-all.sh命令,因为Start-dfs.sh仅会启动namenode和datanodes

(2)检查Hadoop日志

检查HADOOP_LOG_DIR全局变量值以获取Log目录,因为它会包含尝试启动Namenode Manager和Resource Manager时抛出的所有异常

(3)检查已安装的Java版本

不兼容的Java版本可能引发该错误,请检查是否已安装最新的Java版本。

(4)检查Hadoop常见问题

根据您在答案更新中提供的错误,您可能会发现以下相关问题链接:


更多信息

有关更多信息,您可以查看我在Medium上的文章,它可能会给您一些见解:

答案 1 :(得分:0)

[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

答案 2 :(得分:0)

我的问题是我使用java11与hadoop合作。

所以我要做的是

1.rm / Library / Java / *

2。从https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载Java8

3.install java8jdk和

4。在hadoop-env.sh中修复JAVA_HOME

5.stop-all.sh

6.start-dfs.sh

7.start-yarn.sh