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

gyw*_*ily 5 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%)
Run Code Online (Sandbox Code Playgroud)

为什么他们并行?

Tar*_*riq 5

在实际的Reduce阶段开始之前,随着Mappers继续完成,将进行Shuffle,SortMerge.这个百分比表示.这不是实际的减少阶段.这是并行发生的,以减少开销,否则如果框架继续等待所有Mapper首先完成然后进行Shuffling,Sorting和Merging,则会产生开销.