1.概述:
MapReduce的和心思想:将复杂的任务分解成小任务并行计算,再对所有小任务的结果进行汇总。
2.MapReduce编程规范
一共有8个步骤
Map阶段:切分数据,进行并行计算
设置InputFormat类,将数据切分成键值对<k1,v1>输入到第二步。键值对代表的含义:k1代表各行文本相较于文本开头的偏移量,v1代表这行数据
自定义Map逻辑,将K1,v1转化成k2,v2
Shuffle阶段:
将k2,v2打上一个标记,将键值对按照键值对进行分类(分区)
对不同分区的键值对按照key排序
(可选)对排序后的键值对进行初步规约(初步聚合),减少网络数据的拷贝和传输
对数据进行分组,key相同,将其value放入一个集合中
Reduce阶段:
将多个Map任务的结果进行排序以及合并,编写函数实现自己的逻辑,将键值对转成K3,V3的形式输出
设置OutputFormat处理并保存输出的数据