MapReduce Shuffle机制详解
什么是Shuffle? Shuffle是MapReduce框架中最核心也是最复杂的阶段,它发生在Map阶段和Reduce阶段之间。简单来说,Shuffle就是将Map任务的输出数据重新分发给相应的Reduce任务的过程。 为什么需要Shuffle? 想象一个词频统计的场景: * 多个Map任务处理不同的文档片段,每个Map都会输出(word, count)键值对 * 但同一个单词可能出现在不同的Map输出中 * 我们需要将相同key的数据汇聚到同一个Reduce任务中进行合并计算 这就是Shuffle存在的意义:数据的重新分发和聚合。 Shuffle的详细流程 1. Map端的Shuffle(Map-side