1. 產(chǎn)生背景
MapReduce這種并行編程模式思想最早是在1995年提出的。
Jeffery Dean
與傳統(tǒng)的分布式程序設(shè)計相比,MapReduce封裝了并行處理、容錯處理、本地化計算、負(fù)載均衡等細(xì)節(jié),還提供了一個簡單而強(qiáng)大的接口。
MapReduce把對數(shù)據(jù)集的大規(guī)模操作,分發(fā)給一個主節(jié)點(diǎn)管理下的各分節(jié)點(diǎn)共同完成,通過這種方式實(shí)現(xiàn)任務(wù)的可靠執(zhí)行與容錯機(jī)制。
2. 編程模型
編程模型01
編程模型02 3. 實(shí)現(xiàn)機(jī)制
實(shí)現(xiàn)機(jī)制MapReduce函數(shù)首先把輸入文件分成M塊 分派的執(zhí)行程序中有一個主控程序Master 一個被分配了Map任務(wù)的Worker讀取并處理相關(guān)的輸入塊 這些緩沖到內(nèi)存的中間結(jié)果將被定時寫到本地硬盤,這些數(shù)據(jù)通過分區(qū)函數(shù)分成R個區(qū) 當(dāng)Master通知執(zhí)行Reduce的Worker關(guān)于中間key,value
分享到微信 ×
打開微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。