hadoop基礎之初識Hadoop MapReduce架構
阿新 • • 發佈:2018-07-18
沒有 bsp NPU 有一個 簡單 ont hdf image 運行
就開始獲取相關數據,所有的溢出文件就會被整合排序到一個內存緩沖區
Hadoop的mapreduce是一個快速、高效、簡單用於編寫的並運行處理大數據程序並應用在大數據集群上的編程框架。它將復雜的、運行於大規模集群上的並行計算過程高度的抽象到兩個函數:map、reduce。適用於MP來處理的數據集(或者任務),需要滿足一個基本的要求:待處理的數據集可以分解成許多小的數據集額,而且每一個小數據集都可以完全並行的進行處理。
圖1.2-1MP框架數據流
MP框架包括一個主節點(ResourceManager)、多個子節點(運行NodeManager)和MRAppMaster(每個任務一個)共同組成。
針對上面的流程圖可以分為兩個階段來描述:
(1)MAP階段
1)input根據輸入文件產生鍵值對,並傳送到Mapper類的MAP函數中;
2)map輸出鍵值對到一個沒有排序的緩沖內存中;
3)當緩沖內存到給定值或者map的任務完成後,在緩沖內存中的鍵值對就會被排序,然後輸出到磁盤中溢出文件;
4)如果有多個溢出文件,那麽就會整合這些文件到一個文件中,且是排序的;
5)這些排序過的、在溢出文件中的鍵值對會等待reduce的獲取。
(2)Reduce階段
1)reduce獲取map的記錄,然後產生另外的鍵值對,最後輸出到HDFS中;
2)shuffe:相同的key被傳送到同一個reduce中
3)當有一個mapper完成後,reduce
4)當內存緩沖區滿了後,就會溢出文件到本地磁盤
5)當reduce所有相關的數據都傳輸完後,所有溢出文件就會被整合和排序
6)Reducer中reduce方法針對每個key調用一次
7)Reduce的輸出到hdfs
hadoop基礎之初識Hadoop MapReduce架構