Pav*_*thi 7 hadoop hadoop-yarn
我有一个4节点集群(1个Namenode/Resource Manager 3数据节点/节点管理器)
我正在尝试运行一个简单的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
Run Code Online (Sandbox Code Playgroud)
作业被接受,应用程序主机和容器得到设置,但在nodemanager上我看到了这些日志
2014-09-10 17:53:31,982 INFO [ServiceThread:org.apache.tez.dag.app.rm.TaskSchedulerEventHandler] org.apache.hadoop.yarn.client.RMProxy:在/0.0.0.0:8030连接到ResourceManager
2014-09-10 17:53:34,060 INFO [ServiceThread:org.apache.tez.dag.app.rm.TaskSchedulerEventHandler] org.apache.hadoop.ipc.Client:重试连接服务器:0.0.0.0/0.0.0.0 :8030.已经尝试了0次; 重试策略是RetryUpToMaximumCountWithFixedSleep(maxRetries = 10,sleepTime = 1000 MILLISECONDS)
在可配置的超时后,作业失败
我搜索了这个问题,它总是指向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>
Run Code Online (Sandbox Code Playgroud)
您的ResourceManager可能正在侦听IPv6端口,而您的工作节点(即NodeManagers)可能正在使用IPv4连接到ResourceManager
要快速检查是否是这种情况,请执行操作
netstat -aln | grep 8030
Run Code Online (Sandbox Code Playgroud)
如果你得到类似的东西:::8030,那么你的ResourceManager确实正在侦听IPv6端口.如果它是一个IPv4端口,你应该看到类似的东西0.0.0.0:8030
要解决此问题,您可能需要考虑在所有计算机上禁用IPv6并再次尝试.