我是否可以强制我的Reducer(复制阶段)仅在所有映射器完成时启动

use*_*446 6 configuration hadoop mapreduce hadoop-streaming

我有一个具有相当长的地图阶段的hadoop工作,我希望其他短期工作优先运行.为此,我使用hadoop job -set-priority job_id LOW设置我的长工作的优先级.

问题是,对于我的长期工作,即使只有30%的地图任务完成,减速器的复制阶段也会启动.

然后我的网格变得臃肿,因为LOW优先级作业占用了所有减少的时隙.其他小型工作可以完成他们的地图阶段,但在我的长期工作完成之前,他们永远不会得到任何减速器.

任何的想法?谢谢.J.

use*_*446 9

我发现自己是我的问题的答案:有一个job conf参数可以完成这项工作:

mapred.reduce.slowstart.completed.maps = 0.90

减少任务仅在完成90%的地图时开始.默认值为0.05.