【发布时间】:2019-07-25 03:07:56
【问题描述】:
我正在设置一个多节点集群,但我的 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>
我的主机文件在 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)
【问题讨论】:
-
启动hadoop的命令是什么; start-dfs.sh 还是 start-all.sh?
-
这两种我都用过,哈哈。不确定哪个最好。
-
你指定的日志目录是什么?检查
HADOOP_LOG_DIR全局变量值 -
你必须检查Hadoop日志目录,它包含Nodemanager和resourcemanager尝试启动时抛出的错误
-
我只设置了HADOOP_CONF_DIR和HADOOP_HOME。是否需要在特定目录中执行 hdfs 的格式化?
标签: java amazon-web-services hadoop mapreduce hadoop-yarn