MapReduce 的強項是「把超大量、分散在許多機器上的資料,做同一種規則的平行處理,再把結果彙整」。它最常見在離線批次任務:清洗、統計、聚合、排序、建立索引等。幾個實際用途與案例:

  1. 搜尋引擎的倒排索引(Inverted Index)
  1. 大規模日誌分析(網站/APP/IoT)
  1. ETL 與資料清洗
  1. 去重與唯一計數(De-dup / Distinct)
  1. 點擊串流的會話化(Sessionization)
  1. 大資料排序 / 基準測試(TeraSort 類)
  1. 機器學習前處理(特徵工程的批次管線)
  1. 生物資訊與科學運算(序列統計/片段比對的預聚合)

什麼時候選 MapReduce?

什麼時候不要?

如果你正在規劃企業內的資料管線,可以把 MapReduce 視為「耐操的批次磚頭工」:前期把原始資料整平、清洗、聚合,後面再接即時引擎或倉儲做分析與可視化。

~鈳恩智聯,莊濠禧