am如何为每个reduce任务选择节点?

lokaqttq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(326)

我在同一个集群中做了两个单词计数示例的工作(我在本地用我的多集群运行hadoop2.65),其中我的代码一个接一个地运行这两个工作。其中两个作业共享相同的Map器、还原器等,但每个作业都有不同的分区器。
为什么在第二个作业的节点上有不同的reduce任务分配?我通过节点的ip(java获取我的ip地址)来标识reduce任务节点。我知道这些键将转到不同的reduce任务,但我希望它们的目的地保持不变。
例如,我有五个不同的键和四个不同的任务。作业1的分配为:
分区\u 1->节点\u 1
分区\u 2->节点\u 1
分区\u 3->节点\u 2
分区4->节点3
作业2的分配为:
分区\u 1->节点\u 2
分区2->节点3
分区\u 3->节点\u 1
分区4->节点3

06odsfpq

06odsfpq1#

在hadoop中,我们没有reducer的局部性,因此可以根据资源为reducer选择节点。无法强制hadoop在两个作业中在同一节点上运行每个reducer。

相关问题