【问题标题】:NodeManager and ResourceManager processes do not startNodeManager 和 ResourceManager 进程不启动
【发布时间】:2019-07-25 03:07:56
【问题描述】:

我正在设置一个多节点集群,但我的 NodeManager 和 ResourceManager 进程由于某种原因没有启动,我不知道为什么。当我运行jps 命令时,我只看到NameNodeSecondaryNameNodeJPS 进程。结果,我的 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


【解决方案1】:

试图找出问题

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

在尝试启动 hadoop 时检查您是否使用了Start-all.sh 命令,因为Start-dfs.sh 只会启动名称节点和数据节点

(2) 检查 Hadoop 日志

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

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

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

(4) 检查 Hadoop 常见问题

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


更多信息

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

【讨论】:

    【解决方案2】:

    我的问题是我用java11配合hadoop。

    所以我要做的是

    1.rm /Library/Java/*

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

    3.安装java8jdk和

    4.修复hadoop-env.sh中的JAVA_HOME

    5.stop-all.sh

    6.start-dfs.sh

    7.start-yarn.sh

    【讨论】:

    • 更多解释每个步骤的作用或其目的将非常有帮助!
    【解决方案3】:

    [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

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 2015-05-27
      • 2013-04-19
      • 2023-03-12
      相关资源
      最近更新 更多