Hadoop自定义分区程序

时间:2013-05-11 10:02:58

标签: hadoop

我想知道是否可以在Hadoop中完成以下方面:

假设我有3台机器,它将运行3个地图功能和3个减少功能,在正常情况下,每台机器上都有一个map和reduce功能。 我有一组键:A,B,C,D,E,F,G,H,I。

在映射阶段之后,可以强制所有带有键A,B,C的值将始终驻留在机器1上,所有带有键D,E,F的值将始终驻留在机器2等上?< / p>

目前我使用基于hash(key)的分区程序。 此作业将运行多次,我不希望机器1上的键G,H,I具有值,仅在机器3上。

1 个答案:

答案 0 :(得分:1)

使用自定义分区程序,您可以定义A,B和C都将发送到同一个reducer,但是您无法控制群集中的哪个节点实际运行该reduce任务。

您还应注意,即使您定义A,B和C都将被发送到同一个reducer,D,E和F也可能会被发送到同一个reducer - 如果您只配置一个例如单减速器。