例如在map reduce程序中,我已将减少任务数量设为3,自定义分区程序返回value 5
条件然后会发生什么?
这个问题可能很愚蠢,请澄清我
提前致谢
答案 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