我只想知道在mapreduce程序中调用了多少次化简器。我所知道的是映射器的数量等于输入拆分的数量,即对于每个输入拆分,映射器运行 1 个映射器,并且每个映射器的 o/p 被传递给化简器,所以它被一个接一个地传递,或者它一次获取所有数据并处理该数据(减少数据), 所以我只想知道减速机的流程或工作。
通常为每个唯一键调用一次化简器,但您可以指定一个 GrouperComparator(例如,用于辅助排序),然后针对每组键调用一次化简器,由 GrouperComparator 确定。
尽管日志消息似乎暗示 reduce 步骤在映射器全部完成之前开始,但在所有映射器完成之前不会调用化简器。
"理想情况下",减速器阶段可以在第一个映射器成功完成后立即开始。
你想参考类似的问题:when-do-reduce-tasks-start-in-hadoop。
- 映射器的数量取决于输入分割的数量。
- 减速器的数量由用户设置。
您可以指定:
mapreduce.job.reduces=N
如果需要,可以设置0减速器。