我有一个4节点集群(1个namenode/资源管理器3个datanodes/节点管理器)
我试图运行一个简单的tez示例orderedwordcount
hadoop jar C:\HDP\tez-0.4.0.2.1.1.0-1621\tez-mapreduce-examples-0.4.0.2.1.1.0-1621.jar orderedwordcount sample/test.txt /sample/out
作业被接受,应用程序主机和容器被设置,但是在nodemanager上我看到了这些日志
2014-09-10 17:53:31982信息[服务]icethread:org.apache.tez.dag.app.rm.taskschedulereventhandler]org.apache.hadoop.yarn.client.rmproxy:在/0.0.0.0:8030连接到resourcemanager
2014-09-10 17:53:34060信息[服务]icethread:org.apache.tez.dag.app.rm.taskschedulereventhandler]org.apache.hadoop.ipc.client:正在重试连接到服务器:0.0.0.0/0.0.0:8030。已尝试0次;重试策略是RetryUpMaximumCountWithFixedSleep(maxretries=10,sleeptime=1000毫秒)
可配置超时后,作业失败
我搜索了这个问题,它总是指向yarn.resourcemanager.scheduler.address配置。在我所有的资源管理器节点和节点管理器中,我都正确地定义了这个配置,但是由于某些原因,它没有被接受
<property>
<name>yarn.resourcemanager.hostname</name>
<value>10.234.225.69</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
3条答案
按热度按时间koaltpgm1#
hadoop2代码在配置yarn.resourcemanager.scheduler.address时出现问题,例如:
它当前未正确地放置在hadoop-2.7.0/src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/rmproxy.java的“conf”配置中
为了证明这个问题,我们修补了这个文件,直接注入了我们的调度程序地址。下面的补丁是一个黑客。根本原因是'conf'对象需要加载属性“yarn.resourcemanager.scheduler.address”。
编辑:我们通过向类路径添加yarn-site.xml解决了这个问题。不需要修改rmproxy.java
rekjcdws2#
这是因为无法访问资源管理器。尝试从其他节点ping您的资源管理器,看看它是否有效。在集群中保持这些配置的一致性。
b1payxdu3#
您的resourcemanager可能正在侦听ipv6端口,而您的工作节点(即NodeManager)可能正在使用ipv4连接到resourcemanager
要快速检查是否是这种情况,请执行以下操作
如果你得到类似于
:::8030
,则您的resourcemanager确实在侦听ipv6端口。如果是ipv4端口,您应该会看到类似于0.0.0.0:8030
要解决此问题,您可能需要考虑在所有计算机上禁用ipv6,然后重试。