更新時(shí)間:2020-10-16 來(lái)源:黑馬程序員 瀏覽量:
MapReduce的核心思想是“分而治之”。所謂“分而治之”就是把一個(gè)復(fù)雜的問(wèn)題,按照一定的“分解”方法分為等價(jià)的規(guī)模較小的若干部分,然后逐個(gè)解決,分別找出各部分的結(jié)果,把各部分的結(jié)果組成整個(gè)問(wèn)題的結(jié)果,這種思想來(lái)源于日常生活與工作時(shí)的經(jīng)驗(yàn),同樣也完全適合技術(shù)領(lǐng)域。
為了更好地理解“分而治之”思想,我們先來(lái)舉一個(gè)生活的例子。例如,某大型公司在全國(guó)設(shè)立了分公司,假設(shè)現(xiàn)在要統(tǒng)計(jì)公司今年的營(yíng)收情況制作年報(bào),有兩種統(tǒng)計(jì)方式,第1種方式是全國(guó)分公司將自己的賬單數(shù)據(jù)發(fā)送至總部,由總部統(tǒng)一計(jì)算公司今年的營(yíng)收?qǐng)?bào)表;第2種方式是采用分而治之的思想,也就是說(shuō),先要求分公司各自統(tǒng)計(jì)營(yíng)收情況,再將統(tǒng)計(jì)結(jié)果發(fā)給總部進(jìn)行統(tǒng)一匯總計(jì)算。這兩種方式相比,顯然第2種方式的策略更好,工作效率更高效。
MapReduce作為一種分布式計(jì)算模型,它主要用于解決海量數(shù)據(jù)的計(jì)算問(wèn)題。使用MapReduce操作海量數(shù)據(jù)時(shí),每個(gè)MapReduce程序被初始化為一個(gè)工作任務(wù),每個(gè)工作任務(wù)可以分為Map和Reduce兩個(gè)階段,具體介紹如下:
· Map階段:負(fù)責(zé)將任務(wù)分解,即把復(fù)雜的任務(wù)分解成若干個(gè)“簡(jiǎn)單的任務(wù)”來(lái)并行處理,但前提是這些任務(wù)沒(méi)有必然的依賴關(guān)系,可以單獨(dú)執(zhí)行任務(wù)。
· Reduce階段:負(fù)責(zé)將任務(wù)合并,即把Map階段的結(jié)果進(jìn)行全局匯總。
下面通過(guò)一個(gè)圖來(lái)描述上述MapReduce的核心思想,具體如圖1所示。
圖1 MapReduce核心思想
從圖1可知,MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。即使用戶不懂分布式計(jì)算框架的內(nèi)部運(yùn)行機(jī)制,但是只要能用Map和Reduce思想描述清楚要處理的問(wèn)題,就能輕松地在Hadoop集群上實(shí)現(xiàn)分布式計(jì)算功能。
猜你喜歡:
windows系統(tǒng)怎么登錄MySQL數(shù)據(jù)庫(kù)?[大數(shù)據(jù)培訓(xùn)]
學(xué)習(xí)大數(shù)據(jù)要做好哪些準(zhǔn)備?
大數(shù)據(jù)的Hadoop是什么,Hadoop的主要發(fā)展過(guò)程
2020-10-16HDFS究竟是什么?HDFS是怎樣儲(chǔ)存數(shù)據(jù)的?
2020-10-15大數(shù)據(jù)能干什么?淺談大數(shù)據(jù)的應(yīng)用場(chǎng)景
2020-10-13Oozie從入門到精通視頻教程下載|黑馬程序員【最新】
2020-09-11大數(shù)據(jù)平臺(tái)數(shù)據(jù)遷移實(shí)戰(zhàn)方案|視頻教程【黑馬程序員】
2020-09-11數(shù)據(jù)湖架構(gòu)開(kāi)發(fā)視頻教程【黑馬程序員】
2020-09-11