2012-04-17 66 views
1

美好的一天... 我有点困惑;减少任务和减少工作有什么区别? 这是我的情况;我已阅读,减少不启动,直到所有映射结束...... 但在Hadoop的输出我看不然:只有在所有Mapper完成后才减少工作?

12/02/11 10:58:50 INFO mapred.JobClient: map 60% reduce 16% 
12/02/11 10:58:54 INFO mapred.JobClient: map 60% reduce 20% 
12/02/11 10:58:55 INFO mapred.JobClient: map 65% reduce 20% 

的降低为16%,而地图依然是60%... 什么真的发生在这里吗?

回答

14

“减少阶段”有三个阶段:洗牌,排序,减少。洗牌将数据和分类组合在一起。减少是您编写的实际功能reduce

百分比工作方式洗牌的方式是33%,排序是33%,减少是33%。你所看到的是“大约16%/ 33%(即48%)的数据已被复制到减速器中”。直到所有的制图工作完成后,最后的33%的“减少”才能开始。

4

只要第一个映射器完成处理其输入,reducers就开始复制输出映射器,但是,在所有映射器完成执行任务之前,reducer无法处理输入。其原因是Reducer可能从未完成的映射器接收更多的输入数据,这可能会改变它处理输入的顺序。

您在控制台上看到的reducer已完成的百分比表示减速器正在从映射器复制数据的过程中。

相关问题