您的位置:首页 > 编程语言

MapReduce 编程接口体系结构

2015-12-19 09:47 225 查看
                  


  MapReduce 编程模型对外提供的编程接口体系结构如上图 所示,整个编程模型位于应用程序层和 MapReduce 执行器之间,可以分为两层。

  第一层是最基本的 Java API,主要有5个可编程组件,分别是 InputFormat、Mapper、Partitioner、Reducer 和 OutputFormat 。 Hadoop自带了很多直接可用的 InputFormat、Partitioner 和 OutputFormat,大部分情况下,用户只需编写Mapper 和 Reducer 即可。

  第二层是工具层,位于基本 Java API 之上,主要是为了方便用户编写复杂的 MapReduce 程序和利用其他编程语言增加MapReduce 计算平台的兼容性而提出来的。在该层中,主要提供了4 个编程工具包。

   JobControl :方便用户编写有依赖关系的作业,这些作业往往构成一个有向图,所以通常称为 DAG(Directed Acyclic Graph)作业,如朴素贝叶斯分类算法实现便是 4 个有依赖关系的作业构成的 DAG。

    ChainMapper/ChainReducer:方便用户编写链式作业,即在 Map 或者 Reduce 阶段存在多个 Mapper,形式如下:[MAPPER+REDUCER MAPPER*]

    Hadoop Streaming:方便用户采用非java语言编写作业,允许用户指定可执行文件或者脚本作为Mapper/Reducer。

    Hadoop Pipes:专门为C/C++程序员编写MapReduce程序提供的工具包。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: