MapReduce詳解

2023-01-05 10:23:37 來源:51CTO博客

1MapReduce是什么

??Hadoop?---MapReduce是一個軟件框架,基于該框架能夠容易地編寫應用程序,這些應用程序能夠運行在由上千個商用機器組成的大集群上,并以一種可靠的,具有容錯能力的方式并行地處理上TB級別的海量數據集。這個定義里面有著這些關鍵詞,

一是軟件框架,二是并行處理,三是可靠且容錯,四是大規模集群,五是海量數據集。


(資料圖片)

?

2 MapReduce做什么

MapReduce擅長處理大數據,它為什么具有這種能力呢?這可由MapReduce的設計思想發覺。MapReduce的思想就是“分而治之”。

(1)Mapper負責“,即把復雜的任務分解為若干個“簡單的任務”來處理。“簡單的任務”包含三層含義:

一是數據或計算的規模相對原任務要大大縮小;二是就近計算原則,即任務會分配到存放著所需數據的節點上進行計算;三是這些小任務可以并行計算,彼此間幾乎沒有依賴關系。

(2)Reducer負責對map階段的結果進行匯總。至于需要多少個Reducer,用戶可以根據具體問題,通過在mapred-site.xml配置文件里設置參數mapred.????reduce????.tasks的值,缺省值為1。

一個比較形象的語言解釋MapReduce:  

我們要數圖書館中的所有書。你數1號書架,我數2號書架。這就是“Map”。我們人越多,數書就更快。

現在我們到一起,把所有人的統計數加在一起。這就是“Reduce”。??

?

3 MapReduce工作機制

實體一:客戶端,用來提交MapReduce作業。

實體二:JobTracker,用來協調作業的運行。

實體三:TaskTracker,用來處理作業劃分后的任務。

實體四:HDFS,用來在其它實體間共享作業文件。

標簽: 應用程序 簡單的任務 海量數據

上一篇:天天快資訊:Hadoop中的MapReduce框架
下一篇:當前要聞:LNMP架構環境之PHP+Mariadb環境項目:部署博客wordpress項目