分区值大于reduce任务数时会发生什么?

时间:2015-10-27 20:30:50

标签: hadoop dictionary mapreduce reduce partition

例如在map reduce程序中,我已将减少任务数量设为3,自定义分区程序返回value 5条件然后会发生什么?

这个问题可能很愚蠢,请澄清我

提前致谢

2 个答案:

答案 0 :(得分:0)

你的问题有两个方面。

如果分区小于reducer,则会减少reducers。所以你没有完全利用它们。

如果分区超过reducer,那么根据Hadoop权威指南,记录会被丢弃。意味着没有减速器会捡起它,它就消失了。

答案 1 :(得分:0)

如果分区程序返回的reducer号不可用,那么这些记录将被丢弃。所以不要使用自定义分区器。

查看无错解决方案。

InputSampler.Sampler<IntWritable, Text> sampler =
    new InputSampler.RandomSampler<IntWritable, Text>(0.1, 100);
InputSampler.writePartitionFile(conf, sampler);
conf.setPartitionerClass(TotalOrderPartitioner.class);

有关分区的更多详细信息,请查看此article