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解析

作業配置與提交

。。。

。。。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章