更新時間:2022年12月29日17時10分 來源:傳智教育 瀏覽次數(shù):
MapReduce的思想核心是“先分再合,分而治之”。
所謂“分而治之”就是把一個復(fù)雜的問題,按照一定的“分解”方法分為等價的規(guī)模較小的若干部分,然后逐個解決,分別找出各部分的結(jié)果,然后把各部分的結(jié)果組成整個問題的最終結(jié)果。
這種思想來源于日常生活與工作時的經(jīng)驗。即使是發(fā)布過論文實現(xiàn)分布式計算的谷歌也只是實現(xiàn)了這種思想,而不是自己原創(chuàng)。
Map表示第一階段,負(fù)責(zé)“拆分”:即把復(fù)雜的任務(wù)分解為若干個“簡單的子任務(wù)”來并行處理??梢赃M(jìn)行拆分的 前提是這些小任務(wù)可以并行計算,彼此間幾乎沒有依賴關(guān)系。
Reduce表示第二階段,負(fù)責(zé)“合并”:即對map階段的結(jié)果進(jìn)行全局匯總。
這兩個階段合起來正是MapReduce思想的體現(xiàn)。
一個比較形象的語言解釋MapReduce 要數(shù)停車場中的所有停放車的總數(shù)量。
你數(shù)第一列,我數(shù)第二列…這就是Map階段,人越多,能夠同時數(shù)車的人就越多,速度就越快。
數(shù)完之后,聚到一起,把所有人的統(tǒng)計數(shù)加在一起。這就Reduce合并匯總階段。