MapReduce由两个阶段组成,map阶段和reduce阶段:
map阶段:
1.从hdfs上读取文件,将文件的每一行解析成一个<K,V>对。
2.对解析后的<K,V>对执行用户实现的map函数。
3.对2所得结果进行分区。分区过程将在接下来学习Partitioner
4.对不同分区中的数据进行排序和分组。
5.(可选)对每个组的数据进行本地合并。该过程接下来学习Combiner
reduce过程:
1.对于map阶段的输出结果,通过网络发送到reduce节点。
2.对map阶段的多个map节点的输出进行合并、排序,执行用户实现的reduce函数。
3.将输出结果写到hdfs上。