MapReduce是google發(fā)明的一種編程模型。在這種編程模型下,用戶通過(guò)定義一個(gè)map函數(shù)和一個(gè)reduce函數(shù)來(lái)解決問(wèn)題。map函數(shù)對(duì)用戶輸入的鍵/值對(duì)(key/value pair)進(jìn)行處理(處理時(shí)可能只有值這一項(xiàng)有用),生成一系列新的鍵/值對(duì)作為中間結(jié)果;系統(tǒng)(MapReduce的實(shí)現(xiàn))對(duì)map函數(shù)生成的鍵/值對(duì)進(jìn)行處理,將同屬于一個(gè)鍵(key)的值(value)組合在一起,生成鍵/值列表((key/list of values) pair)對(duì);reduce函數(shù)將鍵/值列表對(duì)作為輸入,對(duì)同屬于一個(gè)鍵的值列表進(jìn)行處理,生成最終處理結(jié)果輸出。
如果一個(gè)問(wèn)題可以通過(guò)MapReduce編程模型來(lái)表達(dá)和解決,就可以通過(guò)MapReduce系統(tǒng)自動(dòng)獲得并行執(zhí)行能力。程序員不需要有并行程序設(shè)計(jì)的經(jīng)驗(yàn),只需要定義map和reduce函數(shù)。 閱讀全文
posted @ 2010-04-21 11:29 泰仔在線 閱讀(1583) | 評(píng)論 (0) | 編輯 收藏