====================== MapReduce实现 ======================
Input: 一系列key/value对
用户提供两个函数实现:
map(k,v) ->list(k1,v1)
reduce(k1, list(v1)) -> v2
(k1,v1) 是中间key/value结果对
Output:一系列(k2,v2)对
====================== MapReduce编程模型 ======================
MapReduce将作业的整个运行过程分为两个阶段: Map阶段和Reduce阶段
Map阶段由一定数量的Map Task组成
输入数据格式解析:InputFormat
输入数据处理:Mapper
数据分组:Partitioner
Reduce阶段由一定数量的Reduce Task组成
数据远程拷贝
数据按照key排序
数据处理:Reducer
数据输出格式:OutputFormat
====================== MapReduce编程模型 ======================
Map阶段 ------------->
InputFormat(默认TextInputFormat)
Mapper
Combiner(local reducer)
Partitioner
Reduce阶段 ------------->
Reducer
OutputFormat(默认TextOutputFormat)