1. 程式人生 > >大資料(hadoop-Mapreduce原理架構)

大資料(hadoop-Mapreduce原理架構)

課程目標:

1:MapReduce的應用場景

2:MapReduce程式設計模型

3:MapReduce的架構

4:常見MapReduce應用場景

5:總結

MapReduce的定義

源自於Google的MapReduce論文
  發表於2004年12月
  Hadoop MapReduce是Google MapReduce克隆版
     
MapReduce特點
  易於程式設計
  良好的擴充套件性
  高容錯性
  適合PB級以上海量資料的離線處理

MapReduce的特色—不擅長的方面

實時計算
    像MySQL一樣,在毫秒級或者秒級內返回結果
流式計算
    MapReduce的輸入資料集是靜態的,不能動態變化
    MapReduce自身的設計特點決定了資料來源必須是靜態的
DAG計算
    多個應用程式存在依賴關係,後一個應用程式的輸入為前一個的輸出

MapReduce的例項一Wordcount

場景:有大量檔案,裡面儲存了單詞,且一個單詞佔一行

任務:如何統計每個單詞出現的次數   

類似應用場景
    搜尋引擎中,統計最流行的K個搜尋詞
    統計搜尋詞頻率,幫助優化搜尋詞提示

     Case1:整個檔案可以載入到記憶體中

     Case2:檔案太大不能載入到記憶體中,但<word, count>可以存放到記憶體中;

     Case3:檔案太大無法載入到記憶體中,且<word, count>也不行

     將問題範化為:有一批檔案(規模為TB級或者PB級),如何統計這些檔案中所有單詞出現的次數

     方案:首先,分別統計每個檔案中單詞出現次數,然後累加不同檔案中同一個單詞出現次數

     典型的MapReduce過程