MapReduce是壹種編程模型,用於大規模數據集(大於1TB)的並行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式編程語言裏借來的,還有從矢量編程語言裏借來的特性。
它極大地方便了編程人員在不會分布式並行編程的情況下,將自己的程序運行在分布式系統上。 當前的軟件實現是指定壹個Map(映射)函數,用來把壹組鍵值對映射成壹組新的鍵值對,指定並發的Reduce(歸約)函數。
用來保證所有映射的鍵值對中的每壹個***享相同的鍵組。MapReduce最早是由Google公司研究提出的壹種面向大規模數據處理的並行計算模型和方法。Google公司設計MapReduce的初衷主要是為了解決其搜索引擎中大規模網頁數據的並行化處理。
Google公司發明了MapReduce之後首先用其重新改寫了其搜索引擎中的Web文檔索引處理系統。
但由於MapReduce可以普遍應用於很多大規模數據的計算問題,因此自發明MapReduce以後,Google公司內部進壹步將其廣泛應用於很多大規模數據處理問題。Google公司內有上萬個各種不同的算法問題和程序都使用MapReduce進行處理。