【问题标题】:Reducer doesn't start still progress on MapReduce Job在 MapReduce 作业上,Reducer 没有启动仍然有进展
【发布时间】:2015-09-30 13:17:23
【问题描述】:

如果在所有映射器完成之前减速器没有启动,那么为什么 MapReduce 作业的进度会显示类似 Map(50%) Reduce(10%) 的内容?为什么在mapper还没完成的时候显示reducers进度百分比?

【问题讨论】:

标签: hadoop mapreduce


【解决方案1】:

这是因为mapreduce.job.reduce.slowstart.completedmaps 属性的默认值为0.05

这意味着一旦至少 5% 的总映射器完成执行,reducer 阶段就会开始。

所以分派的reducer将继续停留在复制阶段,直到所有的mapper完成。

如果您希望仅在所有映射器都完成后启动 reducer,请在作业配置中为给定属性配置 1.0 值。

【讨论】:

    【解决方案2】:

    Reducer 开始从映射器复制中间键值对,一旦它们可用。进度计算还考虑了由reduce过程完成的数据传输处理,因此只要映射器的任何中间键值对可用于传输到reducer,reduce进度就会开始显示。虽然 reducer 进度更新了,但程序员定义的 reduce 方法只有在所有映射器完成后才会调用

    【讨论】:

      猜你喜欢
      • 2017-07-28
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      相关资源
      最近更新 更多