一、Map阶段
- 设置InputFormat类,读取输入文件内容,对输入文件的每一行,解析成Key、value对(K1和V1)
- 自定义map方法,每一个键值对调用一次map方法,将第一步的K1和V1结果转换成另外的Key-Value(K2和V2)对,输出结果
二、Shuffle阶段
- 对map阶段输出的K2和V2进行分区
- 对不同分区的数据按照相同的Key排序
- (可选)对数据进行局部聚合,降低数据的网络拷贝
- 对数据进行分组,相同Key的Value放入一个集合中,得到K2和V2
三、Reduce阶段
- 对map任务的输出,按照不同的分区,通过网络copy到不同的reudce节点
- 对多个map任务的输出进行合并、排序。编写reduce方法,在此方法中将K2和V2进行处理,转换成新的Key、value(K2和V3)输出,并把reduce的输出保存到文件中