BypassMergeSortShuffleWriter
BypassMergeSortShuffleWriter和Hash Shuffle中的HashShuffleWriter实现基本一致,唯一的区别在于,map端的多个输出文件会被汇总为一个文件,如下图所示:
Map端结果按照bucket顺序依次写入dataFile文件中,这么处理后,Shuffle生成的文件数显著减少了,同时还会生成indexFile文件,记录各个bucket在dataFile中的位置,用于后续reducer随机读取文件。
最终生成的文件个数为:MM * 2,就Map数量的2倍(数据文件+索引文件)个文件。
其中UnsafeShuffleWriter和SortShuffleWriter也是这么处理的。
#