Hadoop 的 Shuffle 原理是将 Map 阶段处理后生成的中间结果重新排序并分组,以便在 Reduce 阶段进行进一步处理。Shuffle 过程主要包括三个步骤:Partitioning,Sorting 和 Combining。
Partitioning:将 Map 阶段的输出数据按 Key 分别分配到不同的 Reducer 上。
Sorting:对于每一个 Reducer,将分配到其上的所有数据按 Key 值排序。
Combining:在排序之后,Shuffle 还可以对数据进行合并,以减少数据传输量。
Shuffle 过程是 Hadoop 中 MapReduce 计算模型