我是Hadoop的新手。我记得我从某处了解到,在Hadoop中,所有映射函数都必须在reduce函数开始之前完成。
但是当我运行这样的地图缩减程序时,我刚刚得到了打印输出:
map(15%), reduce(5%)
map(20%), reduce(7%)
map(30%), reduce(10%)
map(38%), reduce(17%)
map(40%), reduce(25%)
为什么它们并行运行?
在实际的Reduce阶段开始之前,随着映射器不断完成,随机播放,排序和合并发生。这个百分比表明了这一点。这不是实际的减少阶段。这是并行发生的,以减少如果框架继续等待所有映射器完成,然后进行洗牌、排序和合并,则会产生开销。