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