MapReduce:shuffle简单理解

MapReduce:shuffle简单理解

如上图:

Mapreduce shuffle流程, 从1到6是:

1、map会把写进来的数据写入缓存,写入过程中,会根据key值做一次partition,partition的方式可以自定义

2、之后,会进行一次排序,sort by key,方便后续的合并

3、map阶段的combine,会根据key,进行数据数据合并,例如:

MapReduce:shuffle简单理解

4、合并后,数据开始溢写到磁盘,在map阶段完成前,会对溢写文件根据partition进行一次排序,由于Map shuffle阶段已经进行过一次排序,所以这一次也会快很多

5、Reduce shuffle的第一个阶段,从磁盘读数据到缓存,对数据根据partition做combine

6、对合并后的数据再做一次排序,由于之前排过的原因,这次也相对很快

 

备注:过程中一共有三次排序,第一次是快速排序,后两次是归并排序