Shuffle机制详解
Map方法之后,在Reduce方法之前中间过程有一个shuffle机制
1、Map方法后出来的数据进入一个环形缓冲区内,环形缓冲区默认100M
2、在缓冲区内分两个方向,一个方向存数据,一个方向存数据的元数据,在装满缓冲区80%后反向
3、从缓冲区内对数据进行分区和快速排序,溢写数据到磁盘上,进入不同的分区内
4、此时进行一次可选的Combiner,合并同分区的数据,得到磁盘上一个分区内有序的文件
5、不同溢写文件之间进行一次归并排序,将不同溢写文件的相同分区合并为进行归并,合并为大文件
6、对归并后的文件可以进行一次可选的Combiner,然后将文件进行压缩
7、数据写入磁盘,每个MapTask生成一个大文件,为后面的Reduce工作准备好数据