自定义分区器将单个键发送到多个还原器?

zysjyyx4  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(372)

如果我只有一把钥匙。我能不能避免它只发送到一个减速器(并在多个减速器之间分配)?
我知道我可能需要第二个map reduce程序来合并reducer输出?这是个好办法吗?或者请告诉我有没有更好的办法?

aoyhnmkz

aoyhnmkz1#

我也有过类似的情况。我所做的是这样的:

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);
}

相关问题