【问题标题】:How many times a reducer is called一个reducer被调用多少次
【发布时间】:2014-12-24 00:30:26
【问题描述】:

我只想知道在 map reduce 程序中调用了多少次 reducer。 我所知道的是映射器的数量等于输入拆分的数量,即对于每个输入拆分 1 个映射器运行,并且每个映射器的 o/p 被传递给减速器,所以它一个一个地传递或者它得到所有一次数据并处理该数据(减少数据),所以我只想知道reducer的流程或工作。

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    通常为每个唯一键调用一次reducer,但您可以指定一个GrouperComparator(例如,用于二级排序),然后将为每组键调用一次reducer,由GrouperComparator确定。

    虽然日志消息似乎暗示 reduce 步骤在映射器全部完成之前开始,但在所有映射器完成之前不会调用 reducer。

    【讨论】:

    • 感谢这有帮助,实际上我对调用减速器的基础感到困惑。谢谢:)
    【解决方案2】:

    “理想情况下”reducer 阶段可以在第一个映射器成功完成后立即开始。

    您想提出类似的问题:when-do-reduce-tasks-start-in-hadoop

    【讨论】:

      【解决方案3】:
      • 映射器的数量取决于输入拆分的数量。
      • reducer 的数量由用户设置。

      您可以指定:

      mapreduce.job.reduces=N
      

      如果你愿意,你可以设置 0 减速器。

      【讨论】:

      • 我其实很关心一个 reducer 被调用了多少次,即 1 个 reducer 被调用了多少次,无论如何感谢您的回复 :)
      • 一个reducer只被调用一次,除非推测执行被激活。您可以更改mapreduce.reduce.speculative。请参阅developer.yahoo.com/hadoop/tutorial/module4.html 了解更多信息。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多