从节点不在 Yarn ResourceManager 中

Slave nodes not in Yarn ResourceManager

我设置了一个 3 节点 Apache Hadoop 集群。在主节点上,我可以看到

[hadoop-conf]$ jps
16856 DataNode
17051 SecondaryNameNode
16701 NameNode
21601 ResourceManager
21742 NodeManager
18335 JobHistoryServer

在从属节点上,我看到

[fedora20-template dfs]$ jps
28677 Jps
28510 NodeManager
27449 DataNode

我可以看到来自 master:50070 的三个活动节点。但是,在 ResourceManager Web UI (http://master:8088/cluster/nodes) 中,我只能看到主节点。为什么这两个从节点不在资源管理器中?这是否意味着它们不是用于执行 mapreduce 的资源的一部分?

理想情况下,从属节点不属于您的集群。可能是因为集群设置不正确。但只是为了确保 运行 在您的 shell

中执行以下命令
hdfs dfsadmin -report

您应该能够获取数据节点的统计信息。

问题已解决。 应该在 yarn-site.xml 中进行一些配置,让节点管理器知道资源管理器在哪里。具体来说,我将这个 属性 添加到 yarn-site.xml:

  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>

原因:yarn-default.xml中的默认值是0.0.0.0,很多属性使用这个主机名联系资源管理器,例如

<property>
    <name>yarn.resourcemanager.address</name>
    <value>${yarn.resourcemanager.hostname}:8032</value>
</property>

答案学分:

我在包括 NameNode 在内的所有节点上向 yarn-site.xml 添加了以下内容(假设它也会被使用):

<property>  
  <name>yarn.resourcemanager.resource-tracker.address</name>  
  <value>{Enter NameNode IP Address}:8025</value>  
</property>  
<property>  
  <name>yarn.resourcemanager.scheduler.address</name>  
  <value>{Enter NameNode IP Address}:8030</value>  
</property>  
<property>  
  <name>yarn.resourcemanager.address</name>  
  <value>{Enter NameNode IP Address}:8040</value>  
</property>