MapReduce是Hadoop的核心,是Google提出的一個軟件架構(gòu),用于大規(guī)模 數(shù)據(jù)集 (大于1TB)的并行運(yùn)算。概念“Map(映射)”和“Reduce(化簡)”,及他們的主要思想,都是從函數(shù)式編程語言借來的,還有從矢量編程語言借來的特性。
當(dāng)前的軟件實(shí)現(xiàn)是指定一個Map(映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(化簡)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。
圖1分布式批處理引擎

MapReduce是用于并行處理 大數(shù)據(jù) 集的軟件框架。MapReduce的根源是函數(shù)性編程中的map和reduce函數(shù)。Map函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換為一個鍵/值對列表,輸入域中的每個元素對應(yīng)一個鍵/值對。Reduce函數(shù)接受Map函數(shù)生成的列表,然后根據(jù)它們的鍵縮小鍵/值對列表。MapReduce起到了將大事務(wù)分散到不同設(shè)備處理的能力,這樣原本必須用單臺較強(qiáng)服務(wù)器才能運(yùn)行的任務(wù),在分布式環(huán)境下也能完成。