1. 程式人生 > >Hadoop:MapReduce程式設計介面體系結構

Hadoop:MapReduce程式設計介面體系結構

hadoop高階教程:MapReduce程式設計介面體系結構,MapReduce程式設計模型對外提供的程式設計介面體系結構如圖3-1所示,整個程式設計模型位於應用程式層和MapReduce執行器之間,可以分為兩層。第一層是最基本的Java API,主要有5個可程式設計元件,分別是InputFormat、Mapper、Partitioner、Reducer和OutputFormat。Hadoop自帶了很多直接可用的InputFormat、Partitioner和OutputFormat,大部分情況下,使用者只需編寫Mapper和Reducer即可。第二層是工具層,位於基本Java API之上,主要是為了方便使用者編寫複雜的MapReduce程式和利用其他程式語言增加MapReduce計算平臺的相容性而提出來的。在該層中,主要提供了4個程式設計工具包。來源:

CUUG官網

JobControl:方便使用者編寫有依賴關係的作業,這些作業往往構成一個有向圖,所以通常稱為DAG(Directed Acyclic Graph)作業,如第2章中的樸素貝葉斯分類演算法實現便是4個有依賴關係的作業構成的DAG。

ChainMapper/ChainReducer:方便使用者編寫鏈式作業,即在Map或者Reduce階段存在多個Mapper,形式如下:

[MAPPER+ REDUCER MAPPER*]

Hadoop Streaming:方便使用者採用非Java語言編寫作業,允許使用者指定可執行檔案或者指令碼作為Mapper/Reducer。

Hadoop Pipes:

專門為C/C++程式設計師編寫MapReduce程式提供的工具包。