为什么同时映射和减少运行?

时间:2013-09-13 19:29:18

标签: hadoop mapreduce

我是Hadoop的新手。我记得我从某个地方学到了在Hadoop中,所有地图函数都必须在reduce函数开始之前完成。

但是当我运行这样的地图缩减程序时,我才得到了打印输出:

map(15%), reduce(5%)
map(20%), reduce(7%)
map(30%), reduce(10%)
map(38%), reduce(17%)
map(40%), reduce(25%)

为什么他们并行运行?

1 个答案:

答案 0 :(得分:5)

在实际减少阶段开始之前,随机排序合并会在Mappers继续完成时发生。这个百分比表示。这不是实际的减少阶段。这是并行发生的,以减少开销,否则如果框架一直等待所有Mapper完成然后进行Shuffling,Sorting和Merging,就会产生开销。