我有一个长时间运行的mapreduce工作,有些绘图员要比其他人花更多的时间。在查看web界面上的统计信息时,我看到我的合并器也启动了reducer(其中大部分是空闲的,因为只有2个mapper仍在运行)。虽然在所有Map程序完成之前不浪费时间和进行一些预聚合似乎是合理的,但是我找不到任何关于这种行为的文档。有人能确认这确实是hadoop的一个特性,或者只是在web界面上显示错误吗?
wixjitnu1#
当Map器发出合理数量的数据时,组合器启动。请注意,组合器作为Map器输出的聚合(通常)运行(而不是在reduce端)。更多细节可以在这里找到。此外,在所有Map器完成之前,reducer可以开始收集(仅)Map器发出的数据。这就是减速器的洗牌阶段。您可以通过更改 mapred.reduce.slowstart.completed.maps 财产(或 mapreduce.job.reduce.slowstart.completedmaps 在较新版本中)。关于这篇文章的更多细节。
mapred.reduce.slowstart.completed.maps
mapreduce.job.reduce.slowstart.completedmaps
1条答案
按热度按时间wixjitnu1#
当Map器发出合理数量的数据时,组合器启动。请注意,组合器作为Map器输出的聚合(通常)运行(而不是在reduce端)。更多细节可以在这里找到。
此外,在所有Map器完成之前,reducer可以开始收集(仅)Map器发出的数据。这就是减速器的洗牌阶段。您可以通过更改
mapred.reduce.slowstart.completed.maps
财产(或mapreduce.job.reduce.slowstart.completedmaps
在较新版本中)。关于这篇文章的更多细节。