有多少reduce 就有多少partition

input、map、spill(partition、sort、combiner)、merge、copy、reduce、output

1、input、map:根据inputFormat的不同,将数据输入并切片,确定map的并行度,并执行map方法
2、spill(partition、sort、combiner):完成map的数据 会调用partitioner生成分区号并写到100M的内存缓冲区中,达到80%时进行排序、combiner并写磁盘形成小文件
3、merge:以分区partitioin为单位进行小文件合并,并排序
4、copy:reduce根据自己的分区号去maptask上抓取数据
5、merge:reduce拉取数据的时候还会进行merge,并排序
6、reduce:进行reduce逻辑计算
image.pngimage.png
image.png

MapReduce中的三次排序

在map任务和reduce任务的过程中,一共发生3次排序操作。
1、map阶段:内存落磁盘时(spill)
2、map阶段:小文件合并(merge)
3、reduce阶段:多个map任务输出 的排序(merge)
image.png