Hadoop MapReduce编程模型

MapReduce适用的应用场景特点:任务可被分解为相互独立的子问题

 

MapReduce编程模型共分5个步骤:

  1 迭代。遍历输入数据,并将之解析成key/value对

  2 将输入key/value对映射成另外一些key/value对

  3 依据key对中间数据进行分组

  4 以组为单位对数据进行归约

  5 迭代。将最终产生的key/value对保存到输出文件中

 

MapReduce编程接口体系结构:

  

  整个编程模型位于应用程序层和MapReduce Runtime之间,可以分为两层:

    第一层:最基本的Java API,主要有InputFormat、Mapper、Partitioner、Reducer和OutputFormat。

        大部分情况只需编写Mapper和Reducer

    第二层:工具层。主要是为了方便用户编写复杂的MapReduce程序和利用其它编程语言增加MapReduce计算平台的兼容性

        主要4个编程工具包:

          1 JobControl:方便用户编写有依赖关系的作业,这些作业往往构成一个有向图

          2 ChainMapper/ChainReducer:方便用户编写链式作业,即存在多个Mapper

          3 Hadoop Streaming:方便用户采用非Java语言编写作业

          4 Hadoop Pipes:C/C++程序员编写MapReduce程序提供的工具包

posted @ 2014-04-20 10:44  褐色键盘  阅读(225)  评论(0)    收藏  举报