减少器上的Hadoop组合器执行

时间:2015-05-05 14:58:05

标签: hadoop mapreduce aggregation reducers combiners

我有一个长期运行的MapReduce作业,其中一些映射器比其他映射器花费更多时间。

检查网络界面上的统计数据,我看到我的组合器也开始使用reducer(其中大部分空闲,因为只有2个映射器仍在运行)。

虽然在所有映射器完成之前不浪费时间并进行一些预聚合似乎是合理的,但我找不到任何有关此行为的文档。任何人都可以确认这确实是Hadoop的一个功能,或者只是在Web界面上显示错误了吗?

1 个答案:

答案 0 :(得分:0)

当映射器发出合理数量的数据时,合并器启动。请注意,组合器作为映射器输出的聚合(通常)运行(而不是在reduce侧)。可以找到更多详细信息here

此外,在所有映射器完成之前,reducers可以开始(仅)收集映射器发出的数据。这被称为减速器的改组阶段。您可以通过更改mapred.reduce.slowstart.completed.maps属性(或更新版本中的mapreduce.job.reduce.slowstart.completedmaps)来更改Reducer开始收集数据的时间。有关this SO post的更多详情。

相关问题