- 根据输入路径中的文件个数和大小计算任务切片
- 输出看k,v
- 调用map方法,判断是否又k,v,有几个实行几次
- 在map处理数据,在写出数据到缓冲区MapOutBuffer,里面进行hashcode,但可能时负的 所以进入HashPartitoner进行处理
- 缓存到数组中 ,环形数组,进行快排
- 数组不写满,到80%,溢出器溢出,按分区编号溢出(0号区,1号区),至少溢出一次
- 将溢出的相同的区号合并(Merger归并排序)
- 启动reducer0和1, map端提供了shuffle服务
分发,reducer通过Fetcher拉取自己的任务 - 将拉取的多端数据合并
- 聚合统计 ,相邻的两个k是否时同一个k,进入比较器分组(GroupingComparetor)
- 开始调用reducer方法,有几个key调用几次