教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

MapReduce編程的兩種數據流模型演示

更新時間:2020年12月17日11時42分 來源:傳智教育 瀏覽次數:

好口碑IT培訓

  MapReduce是一種編程模型,用于處理大規(guī)模數據集的并行運算。使用MapReduce執(zhí)行計算任務的時候,每個任務的執(zhí)行過程都會被分為兩個階段,分別是Map和Reduce,其中Map階段用于對原始數據進行處理,Reduce階段用于對Map階段的結果進行匯總,得到最終結果,這兩個階段的模型如圖1所示。

  ? 圖1 MapReduce簡易模型

  MapReduce編程模型借鑒了函數式程序設計語言的設計思想,其程序實現過程是通過map()和reduce()函數來完成的。從數據格式上來看,map()函數接收的數據格式是鍵值對,產生的輸出結果也是鍵值對形式,reduce()函數會將map()函數輸出的鍵值對作為輸入,把相同key值的value進行匯總,輸出新的鍵值對。接下來,通過一張圖來描述MapReduce的簡易數據流模型,具體如圖2所示。

 圖2 MapReduce簡易數據流模型

  ? 關于圖2描述的MapReduce簡易數據流模型的相關說明,具體如下:

  ? (1)將原始數據處理成鍵值對形式。

  ? (2)將解析后的鍵值對傳給map()函數,map()函數會根據映射規(guī)則,將鍵值對映射為一系列中間結果形式的鍵值對。

  ? (3)將中間形式的鍵值對形成形式傳給reduce()函數處理,把具有相同key的value合并在一起,產生新的鍵值對,此時的鍵值對就是最終輸出的結果。

  ? 這里需要說明的是,對于某些任務來說,可能不一定需要Reduce過程,也就是說,MapReduce的數據流模型可能只有Map過程,由Map產生的數據直接被寫入HDFS中。但是,對于大多數任務來說,都是需要Reduce過程的,并且可能由于任務繁重,需要設定多個Reduce,例如,下面是一個具有多個Map和Reduce的MapReduce模型,具體如圖3所示。

 圖3 多個Map和Reduce的MapReduce模型

  圖3演示的是含有3個Map和2個Reduce的MapReduce程序,其中,由Map產生的相關key的輸出都會集中到Reduce中處理,而Reduce是最后的處理過程,其結果不會進行第二次匯總。



猜你喜歡:

Linux系統安裝虛擬機的網絡配置方法

MapReduce編程原理介紹[MapReduce開發(fā)必讀]

黑馬程序員大數據培訓課程 

傳智播客大數據培訓課程 

0 分享到:
和我們在線交談!