为什么map任务总是在单个节点上运行

bvn4nwqk  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(321)

我有一个完全分布式的hadoop群集,有4个节点。当我将作业提交给jobtracker,jobtracker决定12个map任务对我的作业来说很酷时,奇怪的事情发生了。12个map任务总是在单个节点上运行,而不是在整个群集上运行。在我提问之前,我已经做了以下事情:
尝试不同的工作
运行start-balance.sh以重新平衡集群
但它不工作,所以我希望有人能告诉我为什么和如何修复它。

nle07wnf

nle07wnf1#

如果输入数据文件的所有块都在该节点中,则具有优先级的调度器将对同一节点进行排序

zy1mlcev

zy1mlcev2#

检查您的输入是如何被分割的。您可能只有一个输入拆分,这意味着只有一个节点将用于处理数据。您可以通过向stem中添加更多的输入文件并将它们放置在不同的节点上,然后检查哪些节点正在执行工作来测试这一点。
如果不起作用,请检查以确保集群配置正确。具体来说,请检查名称节点是否在其名称中设置了指向其他节点的路径 slaves 文件,并且每个从属节点在其 masters 文件。

nhaq1z21

nhaq1z213#

显然,源数据文件现在在一个数据节点中。不可能是平衡器的错。据我所见,您的hdfs必须只有一个复制,否则您就不在完全分布式的hadoop集群中。

相关问题