14.4K
3293
映射-化簡(jiǎn)編程模型
美國谷歌(Google)公司在2004年提出的映射-化簡(jiǎn)(MapReduce)編程模型,是最具代表性的批處理模式。其主要思想是從函數式編程語(yǔ)言里借鑒的,還有從矢量編程語(yǔ)言里借鑒的特性。它極大地方便了編程人員在不懂分布式并行編程的情況下,將自己的程序運行在分布式系統上。軟件實(shí)現是指定一個(gè)Map函數,把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce函數,用來(lái)保證所有映射的鍵值對中的每一個(gè)共享相同的鍵組。
一個(gè)完整的MapReduce過(guò)程是:MapReduce模型首先將用戶(hù)的原始數據源進(jìn)行分塊,然后分別交給不同的Map任務(wù)區處理。Map任務(wù)從輸入中解析出鍵值對集合,然后對這些集合執行用戶(hù)自行定義的Map函數得到中間結果,并將該結果寫(xiě)入本地硬盤(pán)。Reduce任務(wù)從硬盤(pán)上讀取數據之后,會(huì )根據鍵值進(jìn)行排序,將具有相同鍵值的數據組織在一起。最后用戶(hù)自定義的Reduce函數會(huì )作用于這些排好序的結果并輸出最終結果。
MapReduce的核心設計思想是:①將問(wèn)題分而治之;②用計算推到數據而不是用數據推到計算,有效避免數據傳輸過(guò)程中產(chǎn)生的大量通信開(kāi)銷(xiāo)。MapReduce模型簡(jiǎn)單,且現實(shí)中很多問(wèn)題都可用MapReduce模型來(lái)表示。因此該模型公開(kāi)后,立刻受到極大關(guān)注,并在生物信息學(xué)、文本挖掘等領(lǐng)域得到廣泛應用。

