一 流的角度:
Input --> InputFormat --> Mapper —>Shuffle —> Reducer —> OutputFormat —>Output
二 不同的阶段:
Map —> Reduce
MapTask ----> ReduceTask
MapTask —> Shuffle(MapTask的后半部分+ReduceTask的前半部分) —> ReduceTask
三 在源码的角度: map —> sort —> copy —> sort —> reduce
MapTask: map —> sort
mapPhase = getProgress().addPhase(“map”, 0.667f);
sortPhase = getProgress().addPhase(“sort”, 0.333f);
ReduceTask: copy —> sort —> reduce
copyPhase = getProgress().addPhase(“copy”);
sortPhase = getProgress().addPhase(“sort”);
reducePhase = getProgress().addPhase(“reduce”);
本文详细探讨了MapReduce的一流执行视角,从Input到Output的完整过程,包括MapTask和ReduceTask的不同阶段。在源码层面,MapTask分为map和sort两步,ReduceTask则涉及copy、sort和reduce。理解这一流程对于优化大数据处理至关重要。

被折叠的 条评论
为什么被折叠?



