【问题标题】:What will happen when partition value is greater than the number of reduce tasks?当partition值大于reduce任务数时会发生什么?
【发布时间】:2016-01-27 10:48:18
【问题描述】:

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

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

提前致谢

【问题讨论】:

    标签: hadoop dictionary mapreduce reduce partition


    【解决方案1】:

    您的问题有两个方面。

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

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

    【讨论】:

    • (1) 根据您给出的评论,您可能输入了一个错误 INSTEAD OF PARTITION IS LESS THE NUMBER OF REDUCE TASKS 您可能输入为 PARTITION GREATER NUMBER OF REDUCE TASKS IN第二行我正确吗? (2)如果分区大于reduce任务的数量,那么记录被扔掉意味着根据权威指南意味着,它会抛出错误吗?
    【解决方案2】:

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

    看看没有错误的解决方案。

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

    查看article 了解有关分区的更多详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-13
      • 2016-01-26
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多