Hadoop MapReduce

2022-02-28 09:25 更新

簡介

一種分布式的計算方式指定一個Map(映#x5C04;)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組

Pattern

map: (K1, V1) → list(K2, V2) combine: (K2, list(V2)) → list(K2, V2) reduce: (K2, list(V2)) → list(K3, V3)

Map輸出格式和Reduce輸入格式一定是相同的

基本流程

MapReduce主要是先讀取文件數(shù)據(jù),然后進行Map處理,接著Reduce處理,最后把處理結(jié)果寫到文件中

詳細流程

多節(jié)點下的流程

主要過程

Map Side

Record reader

記錄閱讀器會翻譯由輸入格式生成的記錄,記錄閱讀器用于將數(shù)據(jù)解析給記錄,并不分析記錄自身。記錄讀取器的目的是將數(shù)據(jù)解析成記錄,但不分析記錄本身。它將數(shù)據(jù)以鍵值對的形式傳輸給mapper。通常鍵是位置信息,值是構(gòu)成記錄的數(shù)據(jù)存儲塊.自定義記錄不在本文討論范圍之內(nèi).

Map

在映射器中用戶提供的代碼稱為中間對。對于鍵值的具體定義是慎重的,因為定義對于分布式任務(wù)的完成具有重要意義.鍵決定了數(shù)據(jù)分類的依據(jù),而值決定了處理器中的分析信息.本書的設(shè)計模式將會展示大量細節(jié)來解釋特定鍵值如何選擇.

Shuffle and Sort

ruduce任務(wù)以隨機和排序步驟開始。此步驟寫入輸出文件并下載到本地計算機。這些數(shù)據(jù)采用鍵進行排序以把等價密鑰組合到一起。

Reduce

reduce采用分組數(shù)據(jù)作為輸入。該功能傳遞鍵和此鍵相關(guān)值的迭代器??梢圆捎枚喾N方式來匯總、過濾或者合并數(shù)據(jù)。當reduce功能完成,就會發(fā)送0個或多個鍵值對。

輸出格式

輸出格式會轉(zhuǎn)換最終的鍵值對并寫入文件。默認情況下鍵和值以tab分割,各記錄以換行符分割。因此可以自定義更多輸出格式,最終數(shù)據(jù)會寫入HDFS。類似記錄讀取,自定義輸出格式不在本書范圍。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號