2

我是 hadoop 新手,我正在尝试执行 wordcount 示例。我的计算机上有一个由虚拟机组成的 4 个节点的集群。每次作业完成 map 任务但 reduce 任务在大约 16% 时显示此错误:

随机播放错误:超过 MAX_FAILED_UNIQUE_FETCHES;救助。

12/05/24 04:43:12 WARN mapred.JobClient: 读取任务 outputmachine3-VirtualBox 时出错

从站似乎无法从其他从站检索数据。在某些链接上,我发现它可能是由于 /etc/hosts 文件中的不一致造成的。但是我已经交叉检查了它们,它们都是一致的。谁能帮我吗

4

2 回答 2

3

是否有防火墙阻止公共 hadoop 端口上的集群节点之间的通信(在这种情况下,任务跟踪器为 50060)。通过在端口 50060 上从一个节点到另一个节点的 curl 进行测试,并检查您是否获得了 http 响应代码:

curl -I http://node1:50060/

请务必将上面的“node1”替换为$HADOOP_HOME/conf/slaves文件中的每个值

编辑所以事实证明这很可能是一个 DNS 问题,这是你应该尝试的:

  • 检查${HADOOP_HOME}/conf/slaves文件 - 此处的每个条目都需要位于集群中每个节点的 /etc/hosts 文件中,或者您必须将它们放在网络 DNS 服务器中
  • 一旦您在集群中的每个节点上声明了主机文件(或配置了 DNS 服务器),登录到每个节点并检查您是否可以通过从属文件中的名称 ping 其他集群节点。最后断言您可以将 tasktracker(端口 50060)从每个节点卷曲到其他节点(再次使用从文件中的机器名称)
  • 为了安全起见,重启你的 mapreduce 服务
于 2012-05-24T00:35:18.833 回答
1

通过在终端中键入 $hostname 检查每个节点中的主机名。确保您获得相同的机器名称(主节点中的主节点和从节点中的从节点)。如果没有,请将 /etc/hostname 更改为您的节点名称(主/从)。然后重新启动系统。它会起作用。

简单组

于 2013-07-02T10:02:49.953 回答