大數據技術原理——MapReduce

Hadoop框架的兩大核心為:HDFS和MapReduce。

HDFS是將數據以數據塊為單位進行存儲。

MapRduce包含Map和Reduce兩個函數,適合用于批處理、非實時,以及數據密集型的情況。

下面對MapRduce進行簡介:

最簡單的理解mapreduce的例子是做蔬菜沙拉;

再舉一個具體的例子就是:

圖片發自簡書App

接下來主要從三個方面進行介紹:策略、理念、架構

(1)策略

使用Hadoop框架和MapRduce肯定是大規模的數據集處理,數據動則幾個TB、幾十TB,如果只有幾百M的數據,根本用不著MapRduce。

通常處理過程是:將數據集—(split)—>小分片——>對每個小分片單獨啟動Map任務,每個Map里面都有用戶編寫的對數據處理的邏輯。有多少個分片就有多少個Map,這樣多個Map并行運行。理想的情況是把一個HDFS數據塊的大小作為一個分片,大約64M或128M。

(2)理念

Hadoop的理念是“計算向數據靠攏”,尋找數據塊最近的map結點進行計算,而不是將數據運輸到計算結點增大資源消耗。

(3)架構

1.png

每個task 中將slot分為map slot和reduce slot。

2.png

Shuffle過程是理解MapReduce的核心,一個shuffle過程包括一個map任務和一個reduce任務。

3.png

4.png

5.png

作者:CB

郵箱:2101283570@qq.com

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容