第28课:彻底解密Spark Sort-Based Shuffle排序具体实现内幕和源码详解
本文根据家林大神系列课程编写 http://weibo.com/ilovepains为什么讲解Sorted-Based shuffle?2方面的原因: 一,可能有些朋友看到Sorted-Based Shuffle的时候,会有一个误解,认为Spark基于Sorted-Based Shuffle 它产出的结果是有序的。 二,Sorted-Based Shuffle要排序,涉及到一个排序算法。这部分内容同学们可选学。
Sorted-Based Shuffle 的核心是借助于 ExternalSorter 把每个 ShuffleMapTask 的输出,排序到一个文件中 (FileSegmentGroup),为了区分下一个阶段 Reducer Task 不同的内容,它还需要有一个索引文件 (Index) 来告诉下游 Stage 的并行任务,那一部份是属于你的。
Shuffle Map Task 在ExternalSorter 溢出到磁盘的时候,