MapReduce编程模型

MapReduce编程模型概述

MapReduce适用的场景具有共同的特点:任务可以分解为相互独立的子任务。

MarReduce编程接口体系结构

编程模型位于MapReduce Runtime和应用层之间,共有两层,第一层是Java API,共有5个可编程组件,分别是:InputFormat,Mapper,Partitioner,Reducer,OutputFormate。第二层位于Java API之上,主要是一些工具包,包括JobControl(DAG),ChainMapper,Hadoop String,Hadoop Pipes。

新旧API比较

存放位置不同:

旧API存放于org.apache.hadoop.mapred包

新API存放于org.apache.hadoop.mapreduce包及其子包中

接口变为抽象类:

抽象类具有良好的向后兼容性。当为抽象类添加新方法时,只有有默认实现,用户之前的代码就不用改了,若是接口则不然。

Context的封装

增强了易用性。


新版的API只是在旧版的API上封装而来的,为了更好的易用性和扩展性。


MapReduce API的基本概念

序列化/反序列化

概念:结构化对象和字节流之间的相互转换。

序列化的作用:持久化和进程间通信。

MapReduce中使一个Java对象实现序列化的方法是实现Writable接口

Reporter参数

Reporter是MapReduce提供给应用程序的工具,报告完成进度,设定状态,更新计数器。

Reporter是一个基础参数,MapReduce对外提供的大部分组件中都添加了该参数。

回调机制

InputFormate,Mapper,Partitioner,Reducer,OutputFormate都是回调接口

Java API解析

作业配置与提交

。。。

。。。




你可能感兴趣的:(MapReduce编程模型)