【大資料】離線批處理計算MapReduce | 複習筆記

吃水不忘挖井人?發表於2020-12-11

在這裡插入圖片描述

一些介紹

分散式計算模型

批處理計算:(大容量靜態資料集)

  1. 有界、持久、大量
  2. 理需要訪問全套記錄,不適合對處理時間要求較高的場合

偷老師的圖:
在這裡插入圖片描述
在這裡插入圖片描述

常見計算模式

主要點在於分開mapper和reducer,然後確定每個<key,value>鍵值對的意義

  • 求和模式(Summarization Pattern)
    單詞統計:

    1. map階段:輸入<key,value>是<網頁ID,網頁內容>,輸出<key,value>是<單詞,出現次數>
    2. reduce階段:累加相同key值的,輸出<單詞,出現次數>
    3. 補充:map和reduce間是shuffle階段,在shuffle階段,可以先對每一個map做combiner(合併相同的key對應的value,區域性reducer),然後做partitioner,通過hash等方式分配中間結果資料給reducer,實現負載均衡
  • 過濾模式(Filtering Pattern)

    1. 簡單過濾:Map-Only
    2. TOP K:Mapper首先統計出資料塊內所有記錄中某個欄位滿足Top K條件的記錄子集,得到區域性Top K記錄。然後通過Reducer對這些區域性Top K記錄進一步篩選,獲得最終的全域性最大的K條記錄。
  • 資料組織模式(Data Organization Pattern)

    1. 資料分片
    2. 全域性排序:“排序是MapReduce的天然特性”(a每個map輸出結果有序;b每個reduce輸入有序)但當多個reducer時,需要通過Partition策略,保證不同Reducer處理一個範圍區間的記錄。

例項

文字分析、頁面點選統計、專利引用統計

特點

  • 優點:
    1. 極強的可擴充套件性
    2. 很好的容錯性,
    3. 簡單,使用者只需完成Map和Reduce
      函式即可完成大規模資料的並行處理
  • 缺點:
    1. 不適合對時效性要求較高的應用場景(Map和Reduce任務啟動時間較長)
    2. 不適合迭代運算類(在多處的磁碟讀/寫及網路傳輸過程)

K-Means演算法MapReduce化

  1. mapper處理根據簇中心重新分簇,輸出鍵值對為<cluster assigned to , 資料點自身>;
  2. combine階段,鍵值對<cluster id ,-【 # of data points of this cluster, mean】>;
  3. reducer處理根據分簇情況重新計算簇中心,鍵值對<該cluster 的id,該cluster的資料點的均值及對應於該均值的資料點的個數>

相關文章