mapreduce总结梳理:
1.shufffle阶段:
溢写->分区->排序->磁盘文件->合并->排序->磁盘文件–>copy->合并->排序
spill->partition->sort->merge->sort->copy->merge->sort
shuffle阶段进行了2次合并,3次排序。
第一次排序:溢出后对数据进行排序。默认使用的快速排序。
第二次排序:是对map的多个溢写分区文件合并以后进行排序,默认使用归并排序。
第三次排序:reduce拷贝多个map的输出分区文件合并以后进行排序,默认使用归并排序。
第一次合并:对map多次溢写的分区文件进行合并
第二次合并:对从多个map拷贝到reduce的分区文件进行合并
2.map阶段
分片-格式化-读取数据-》maptask执行(开发者编写的程序)
split->inputformat->recordreader->maptask
3.reduce阶段
reducetask(开发者编写的程序)->outputformat->recorderwriter->分区文件
reduce的输出可能有多个文件,一个分区一个文件。