例如,在map reduce程序中,我将reduce任务的数量设为3,并将自定义分区器返回 value 5 有条件的话会发生什么?这是一个可能很愚蠢的问题请澄清我提前谢谢
value 5
af7jpaap1#
你的问题有两个方面。如果分区小于reducer,那么reducer就会被浪费。所以你没有充分利用它们。根据hadoop权威指南,如果分区多于reducer,那么记录就会被丢弃。意味着没有减速器会把它捡起来,它就不见了。
euoag5mw2#
如果partitioner返回的reducer号不可用,那么这些记录将被丢弃。所以不要玩自定义分区。看看无错误解决方案。
InputSampler.Sampler<IntWritable, Text> sampler = new InputSampler.RandomSampler<IntWritable, Text>(0.1, 100); InputSampler.writePartitionFile(conf, sampler); conf.setPartitionerClass(TotalOrderPartitioner.class);
有关分区的更多详细信息,请参阅本文
2条答案
按热度按时间af7jpaap1#
你的问题有两个方面。
如果分区小于reducer,那么reducer就会被浪费。所以你没有充分利用它们。
根据hadoop权威指南,如果分区多于reducer,那么记录就会被丢弃。意味着没有减速器会把它捡起来,它就不见了。
euoag5mw2#
如果partitioner返回的reducer号不可用,那么这些记录将被丢弃。所以不要玩自定义分区。
看看无错误解决方案。
有关分区的更多详细信息,请参阅本文