当分区值大于减少任务的数量时会发生什么



例如,在map reduce程序中,我将reduce任务的数量给定为3,而自定义Partitioner为某个条件返回value 5,那么会发生什么?

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

提前感谢

您的问题有两个方面。

如果分区小于减速器,那么减速器就会被浪费。所以你没有充分利用它们。

根据Hadoop最终指南,如果分区超过reducer,那么记录就会被丢弃。这意味着没有减速器会把它捡起来,它就不见了。

如果partitioner返回的reducer编号不可用,则这些记录将被丢弃。所以不要玩自定义分区器。

看看无错误的解决方案。

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

有关分区

的更多详细信息,请参阅本文

相关内容

  • 没有找到相关文章

最新更新