【发布时间】:2012-08-18 10:46:55
【问题描述】:
如何向我的所有 reducer 发送特定记录?
我知道 Partitioner 类及其作用,但我看不出有任何简单的方法可以确保将记录发送到所有 reducer。
基本上Partitioner有这个方法:
int getPartition(K2 key,
V2 value,
int numPartitions)
我的第一个想法是让 Partitioner 和 Mapper 协作如下:Mapper 不断输出记录的次数等于 reduce 任务的数量,并且 Partitioner 返回所有 int(从 0 到 numPartitions-1) ,这样可以确保记录到达所有分区。
还有其他更聪明的方法来解决这个问题吗?例如,我为需要发送到所有分区的记录返回 -1,框架在看到返回的 -1 时为我执行此操作。
【问题讨论】:
标签: hadoop mapreduce partitioning reduce partitioner