只有All Mappers完成后才能减少工作量?

ibi*_*nja 1 reduce hadoop mapreduce

美好的一天......我有点困惑; 减少任务和减少工作之间有什么区别?这是我的情况; 我已经读过,在所有映射完成之前,reduce不会启动...但是在hadoop输出中我看到了另外一个:

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%
Run Code Online (Sandbox Code Playgroud)

减少是16%,而地图仍然是60%......这里真的发生了什么?

Don*_*ner 15

"减少阶段"分为三个阶段:洗牌,排序,减少.随机播放复制数据和排序将键组合在一起.reduce是reduce您编写的实际函数.

百分比的工作方式是洗牌是33%,排序是33%,减少是33%.您所看到的是"大约16%/ 33%(即48%)的数据已被复制到减速器".在所有映射器完成之前,最终33%的"reduce"无法启动.