Hadoop核心元件之MapReduce
MapReduce概述
- Google MapReduce的克隆版本
- 優點:海量資料的離線處理,易開發,易執行
- 缺點:實時流式計算
Hadoop MapReduce是一個軟體框架,用於輕鬆編寫應用程式,以可靠,容錯的方式在大型叢集(數千個節點)的商用硬體上並行處理大量資料(多TB資料集)
MapReduce程式設計模型
思想:分而治之
MapReduce作業通常將輸入資料集拆分為獨立的塊,這些塊由map任務以完全並行的方式處理。框架對map的輸出進行排序,然後輸入到reduce任務。通常,作業的輸入和輸出都儲存在檔案系統中。該框架負責排程任務,監視它們並重新執行失敗的任務。

案例;統計一篇文章,各個單詞出現的次數
Input資料輸入
Splitting:拆分資料讀取到各個節點
Mapping:為每一個單詞賦1,不會做合併操作
Shuffling: 重新洗牌(指定規則),這裡把相同單詞發到同一個節點去
Reducing : 統計合併相同單詞的次數
最後把結果寫到一個檔案中去就ok了