漫画:什么是MapReduce
轉(zhuǎn)載自?腦洞有點(diǎn)大的 ?程序員小灰
什么是MapReduce?
MapReduce是一種編程模型,其理論來自Google公司發(fā)表的三篇論文(MapReduce,BigTable,GFS)之一,主要應(yīng)用于海量數(shù)據(jù)的并行計算。
MapReduce可以分成Map和Reduce兩部分理解。
1.Map:映射過程,把一組數(shù)據(jù)按照某種Map函數(shù)映射成新的數(shù)據(jù)。
2.Reduce:歸約過程,把若干組映射結(jié)果進(jìn)行匯總并輸出。
讓我們來看一個實(shí)際應(yīng)用的栗子,如何高效地統(tǒng)計出全國所有姓氏的人數(shù)?
我們可以利用MapReduce的思想,針對每個省的人口做并行映射,統(tǒng)計出若干個局部結(jié)果,再把這些局部結(jié)果進(jìn)行整理和匯總:
這張圖是什么意思呢?我們來分別解釋一下步驟:
1.Map:
以各個省為單位,多個線程并行讀取不同省的人口數(shù)據(jù),每一條記錄生成一個Key-Value鍵值對。圖中僅僅是簡化了的數(shù)據(jù)。
2.Shuffle
Shuffle這個概念在前文并未提及,它的中文意思是“洗牌”。Shuffle的過程是對數(shù)據(jù)映射的排序、分組、拷貝。
3.Reduce
執(zhí)行之前分組的結(jié)果,并進(jìn)行匯總和輸出。
需要注意的是,這里描述的Shuffle只是抽象的概念,在實(shí)際執(zhí)行過程中Shuffle被分成了兩部分,一部分在Map任務(wù)中完成,一部分在Reduce任務(wù)中完成。
Hadoop如何實(shí)現(xiàn)MapReduce?
Hadoop是Apache基金會開發(fā)的一套分布式系統(tǒng)框架,包含多個組件,其核心就是HDFS和MapReduce。
由于篇幅原因,文本不會對Hadoop做完整的介紹,只是簡單介紹一下Haddoop框架當(dāng)中如何實(shí)現(xiàn)MapReduce。
下面這張圖是Hadoop框架執(zhí)行一個MapReduce Job的全過程:
這里需要對幾種實(shí)體進(jìn)行解釋:
HDFS:??
Hadoop的分布式文件系統(tǒng),為MapReduce提供數(shù)據(jù)源和Job信息存儲。
Client Node:?
執(zhí)行MapReduce程序的進(jìn)程,用來提交MapReduce Job。
JobTracker Node:?
把完整的Job拆分成若干Task,負(fù)責(zé)調(diào)度協(xié)調(diào)所有Task,相當(dāng)于Master的角色。
TaskTracker Node:?
負(fù)責(zé)執(zhí)行由JobTracker指派的Task,相當(dāng)于Worker的角色。這其中的Task分為MapTask和ReduceTask。
總結(jié)
以上是生活随笔為你收集整理的漫画:什么是MapReduce的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贝壳拟15.5亿元收购空间智慧
- 下一篇: 小米智能家庭面板开始众筹!“