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

时间:2012-01-16 08:32:34

标签: configuration hadoop mapreduce hadoop-streaming

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

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

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

有什么想法吗? 谢谢。 学家

1 个答案:

答案 0 :(得分:9)

我发现自己回答了我的问题: 有一个job conf参数可以完成工作:

  

mapred.reduce.slowstart.completed.maps = 0.90

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