运行Terasort时获取失败太多

时间:2018-03-09 17:07:34

标签: hdfs yarn cpu-usage hadoop2 vcpu

我有一个8节点的Hadoop集群,其中每个节点有24个具有超线程的物理内核,因此,48个vCPU和256GB内存。

我正在尝试运行6TB的Terasort工作。

问题:当我使用yarn.nodemanager.resource.cpu-vcores = 44(对于OS,DN,RM等,48减去4)时,Terasort运行时没有错误。但是,当我尝试使用yarn.nodemanager.resource.cpu-vcores = 88过度订阅CPU时,我会得到几个map并减少错误。

所有地图失败都像“太多的提取失败......”。 所有减少错误就像“......#Block没有足够数量的副本......”。

我看过THISTHIS个链接。我检查了我的/ etc / hosts文件,并且还发现了我的net.core.somaxconn内核参数。

我不明白为什么我会使用超额预订的CPU来获取地图并减少故障。

任何提示或建议都会有所帮助,并提前感谢。

1 个答案:

答案 0 :(得分:0)

我到了“Too many fetch ...”错误的底部。发生的事情是因为在运行我的7TB作业时服务器负载很重(请记住1TB作业总是成功运行),主站和从站之间没有足够的连接。我需要增加主服务器和从服务器之间的监听队列,这可以通过修改名为“somaxconn”的内核参数来完成。

默认情况下,rhel OS中的“somaxconn”设置为128。通过将其提升到1024,7TB terasort作业成功运行而没有失败。

希望这有助于某人。