【发布时间】:2014-12-24 00:30:26
【问题描述】:
我只想知道在 map reduce 程序中调用了多少次 reducer。 我所知道的是映射器的数量等于输入拆分的数量,即对于每个输入拆分 1 个映射器运行,并且每个映射器的 o/p 被传递给减速器,所以它一个一个地传递或者它得到所有一次数据并处理该数据(减少数据),所以我只想知道reducer的流程或工作。
【问题讨论】:
我只想知道在 map reduce 程序中调用了多少次 reducer。 我所知道的是映射器的数量等于输入拆分的数量,即对于每个输入拆分 1 个映射器运行,并且每个映射器的 o/p 被传递给减速器,所以它一个一个地传递或者它得到所有一次数据并处理该数据(减少数据),所以我只想知道reducer的流程或工作。
【问题讨论】:
通常为每个唯一键调用一次reducer,但您可以指定一个GrouperComparator(例如,用于二级排序),然后将为每组键调用一次reducer,由GrouperComparator确定。
虽然日志消息似乎暗示 reduce 步骤在映射器全部完成之前开始,但在所有映射器完成之前不会调用 reducer。
【讨论】:
“理想情况下”reducer 阶段可以在第一个映射器成功完成后立即开始。
您想提出类似的问题:when-do-reduce-tasks-start-in-hadoop
【讨论】:
您可以指定:
mapreduce.job.reduces=N
如果你愿意,你可以设置 0 减速器。
【讨论】:
mapreduce.reduce.speculative。请参阅developer.yahoo.com/hadoop/tutorial/module4.html 了解更多信息。