1. 程式人生 > >Hadoop核心元件之MapReduce

Hadoop核心元件之MapReduce

MapReduce概述

  • Google MapReduce的克隆版本
  • 優點:海量資料的離線處理,易開發,易執行
  • 缺點:實時流式計算 Hadoop MapReduce是一個軟體框架,用於輕鬆編寫應用程式,以可靠,容錯的方式在大型叢集(數千個節點)的商用硬體上並行處理大量資料(多TB資料集)

MapReduce程式設計模型

思想:分而治之 MapReduce作業通常將輸入資料集拆分為獨立的塊,這些塊由map任務以完全並行的方式處理。框架對map的輸出進行排序,然後輸入到reduce任務。通常,作業的輸入和輸出都儲存在檔案系統中。該框架負責排程任務,監視它們並重新執行失敗的任務。 在這裡插入圖片描述

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

最後把結果寫到一個檔案中去就ok了