鍍金池/ 教程/ 大數(shù)據(jù)/ Hadoop - MapReduce
YARN - Failover
MapReduce - Shuffle
Hadoop配置
MapReduce - 讀取數(shù)據(jù)
Hadoop - MapReduce
YARN - Container
Hadoop 測試
MapReduce - Mapper
Hadoop - 參考
YARN - ResourceManager
HDFS - 可靠性
HDFS - 讀文件
Hadoop - 簡介
YARN - ApplicationMaster
Hadoop - IO
Hadoop 監(jiān)控
MapReduce - 編程
Hadoop - YARN
Hadoop - HDFS
HDFS - 命令工具
HDFS - 寫文件
YARN - NodeManager
Hadoop安裝

Hadoop - MapReduce

簡介

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

Pattern

http://wiki.jikexueyuan.com/project/hadoop/images/mapreduce-pattern.png" alt="" />

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é)果寫到文件中

http://wiki.jikexueyuan.com/project/hadoop/images/mapreduce-process-overview.png" alt="" />

詳細流程

http://wiki.jikexueyuan.com/project/hadoop/images/mapreduce-process.png" alt="" />

多節(jié)點下的流程

http://wiki.jikexueyuan.com/project/hadoop/images/mapreduce-process-cluster.png" alt="" />

主要過程

http://wiki.jikexueyuan.com/project/hadoop/images/mapreduce-data-process.png" alt="" />

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

reducer采用分組數(shù)據(jù)作為輸入。該功能傳遞鍵和此鍵相關(guān)值的迭代器。可以采用多種方式來匯總、過濾或者合并數(shù)據(jù)。當(dāng)ruduce功能完成,就會發(fā)送0個或多個鍵值對。

輸出格式

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

上一篇:Hadoop - YARN下一篇:Hadoop - 參考