我正在设置一个多节点群集,而我的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 at Java.base/jdk.internal.loader.builtinclassloader.loadclass(buildinclassloader.java:583) at Java.base/jdk.internal.loader.classloaders $ appclassloader.loadclass(classloaders.java:190) at Java.base/java.lang.classloader.loadclass(classLoader.java:499) ... 83更多
错误注入构造函数,java.lang.noclassdeffounderror:javax/activation/dataSource atorg.apache.hadoop.yarn.server.ResourceManager.webapp.jaxbcontextresolver。(jaxbcontextresolver.java:41) atrg.apache.hadoop.yarn.server.resourcemanager.webapp.rmwebapp.setup(rmwebapp.java:54) 找到org.apache.hadoop.yarn.server.resourcemanager.webapp.jaxbcontextresolver
1错误 在com.google.inject.internal.internal.injectorimpl $ 2.GET(Injectorimpl.java:1025) 在com.google.inject.internal.injectorimpl.getInstance(indectorimpl.java:1051) 在com.sun.jersey.guice.spi.container.guicecomponentproviderfactory $ guiceInstantiatedComponentProvider.getInstance(GuiceComponentProviderFactory.java:345)
>
试图找出问题
(1)start-dfs.sh vs start-all.sh
在尝试启动Hadoop时,请检查您正在使用Start-all.sh
命令,因为Start-dfs.sh
仅启动Namenode和DataNodes
(2)检查Hadoop日志
检查HADOOP_LOG_DIR
全局变量值以获取日志DIR,因为它将在尝试启动Namenode Manager和Resource Manager
(3)检查已安装的Java版本
错误可能是由不兼容的Java版本丢弃的,请检查您已经安装了最新的Java版本。
- 修复Java 9 Hadoop中的Incompatibilies
- Hadoop错误启动ResourceManager和NodeManager
(4)检查Hadoop常见问题
根据您在答案更新中提供的错误,您可能会发现这些问题链接相关:
- [JDK9]在JDK9 Env中使用JDK9构建Hadoop PKG之后,无法运行纱线应用程序
- [JDK9]资源经理在使用Hadoop PKG(使用JDK9构建) 后无法启动
更多信息
有关更多信息,您可以在媒介上查看我的文章,它可能会给您一些见解:
- 在Ubuntu上安装Hadoop 3.1.0多节点群集16.04逐步
我的问题是我使用java11与hadoop合作。
所以我要做的是
1.rm/library/java/*
2.Download Java8来自https://www.oracle.com/technetwork/java/java/javase/javase/downloads/jdk8-downloads-2133151.html
3.启用java8jdk和
4.将hadoop-env.sh中的java_home提出
5.STOP-ALL.SH
6.Start-dfs.sh
7.启动YARN.SH
[pdash@localhost hadoop] $导出yarn_resourcemanager_opts =" - add-modules = all-system"[pdash@localhost hadoop] $ export yarn_nodemanager_opts =" - add-modules = all-system"
它可以肯定地使用Apache Jira log ....谢谢Praful