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