Reducer没有启动仍然在MapReduce作业上取得进展



如果reducers没有在所有mapmapers完成之前启动,那么为什么MapReduce作业的进度显示为Map(50%) Reduce(10%)?为什么mapper尚未完成时显示reducers进度百分比?

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

表示至少有5%的映射器完成了执行,reducer阶段就会启动。

因此,分派的reducer将继续停留在拷贝阶段,直到所有映射器完成。

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

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

相关内容

  • 没有找到相关文章

最新更新