自定义分区器将单个密钥发送到多个Reducer?

时间:2014-11-13 17:51:08

标签: hadoop bigdata skew hadoop-partitioning reducers

如果我只有一把钥匙。我可以避免将其发送到一个减速器(并将其分配到多个减速器)吗?

据我所知,我可能需要有第二个map reduce程序来组合减速器输出? 这是一个好方法吗?或者,如果有更好的方法,请告诉我?

1 个答案:

答案 0 :(得分:1)

我曾经遇到过类似的情况。我做的是这样的:

int numberOfReduceCalls = 5
IntWritable outKey = new IntWritable();
Random random = new Random();
public void map(LongWritable key, Text value, Context context)
                      throws IOException, InterruptedException {
    // use a random integer within a limit
    outKey.set( random.nextInt(numberOfReduceCalls) );  
    context.write(outKey, value);
}