MapReduce这个分布式计算框架,其应用场景往往是那些可以将任务分解成相互独立的子问题。基于这个特点, MapReduce编程模型将分布式编程分成了五个步骤:
1),迭代遍历输入数据,并将数据解析成简单的key/value键值对的形式,该阶段段对应着InputFormat组件;
2)、将输入的key/value映射成另外的key/value数值对,该阶段对应着Mapper组件;
3)、依据key对所有的中间数据进行分组儿,该阶段对应着Partitiner组件;
4)、以组为单位对数据进行reduce处理,该阶段对应着Reducer组件;
5)、将最终产生的数据以key/value的形式保存到文件中,该阶段对应着OutputForamt组件。
下面然我们来看一下MapReduce编程模型接口的示意图:
![](http://dl2.iteye.com/upload/attachment/0085/0345/1339929f-bddf-3b09-a0ef-ba2452265ffc.jpg)
在接下来的几节中我们将着重学习这个编程接口的组件。