Reducer在MapReduce Job上无法启动

时间:2015-09-30 13:17:24

标签: hadoop mapreduce

如果Reducer在所有映射器完成之前没有启动那么为什么MapReduce作业的进度显示像Map(50%)Reduce(10%)?为什么在mapper尚未完成时会显示减速器进度百分比?

2 个答案:

答案 0 :(得分:1)

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

这意味着只要总共5%的映射器完成执行,就会启动reducer阶段。

因此,派遣的减速器将继续保持复制阶段,直到所有映射器完成。

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

答案 1 :(得分:-1)

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