MapReduce 编程接口体系结构
2015-12-19 09:47
225 查看
![](http://images2015.cnblogs.com/blog/855959/201512/855959-20151219094603552-1855484605.png)
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程序提供的工具包。
相关文章推荐
- 二叉搜索树(c++)
- 菜鸟猿大战Java之集合框架系列(二)
- My way to Python - Day06 socket基础
- thinkphp -ajaxpage --ajax分页
- QDialog之屏蔽Esc键
- php_scws 中文分词
- spring mvc拦截器
- Thinkphp实现自动验证和自动完成
- 了解ASP.NET5 Web应用程序结构
- java中字节数组与字符串,与数据之间的装换
- mybatis基于baseDao的CURD代码生成方案
- php获取前一天,前一个月,前一年的时间
- Eclipse中10个最有用的快捷键
- 详解Java的Hibernat框架中的Map映射与SortedMap映射
- C#基础性问题
- Java内存简介
- vs2013安装caffe过程中,项目属性->项类型中缺少CUDA C/C++
- Python 面向对象 三
- removeAll throws java.lang.UnsupportedOperationException
- mahout in Action2.2-给用户推荐图书(1)-直观分析和代码