第二章 文獻探討
2.3 以 MapReduce 平行架構處理資料相似配對問題
MapReduce 是由論文[7]所提出的一套軟體架構,常使用在大規模資料的 平行計算。其運算架構是由 map 以及 reduce 所組成,執行 map 與 reduce 的 處理機稱為 mapper 及 reducer。map 為一映射函數,可以將資料利用映射函 數進行初步處理,產生一組鍵值對應配對,而 reduce 步驟中,則會蒐集不同 mapper 所產生出的鍵值對應配對進行歸納與統整動作,將擁有相同鍵值的資 料整併到同一處理器,並根據其中包含的值進行歸納與統整。MapReduce 架 構中,每個 Mapper 的計算都是可以獨立進行,因此可以達到高度平行,適 合平行架構的發展,其架構如下。
圖 4 MapReduce 架構[11]
MapReduce 架構提供高可靠性的平行架構,主節點會週期性確認每個 Mapper 是否正常運作,若是超過確認失敗,則將此結點視為死亡狀態,主結 點會將此工作分派給其他 Mapper 執行,可以提供高可靠性的計算。
論文[11]中採用反向索引內容找索引串列為基礎,並結合 MapReduce 架 構,把相似資料配對問題區分為兩步驟。第一步驟是配對資料的候選項判斷,
此步驟會建立起反向索引,並根據反向出可能相似的配對,Map 階段會建立 起個資料向量的索引值,在 Reduce 階段會依據每個特徵所建立的索引內容 產生配對的候選集;第二步驟中,Map 階段會找出兩筆資料共同出現的特徵,
Reduce 階段則會依據兩資料向量共同出現的特徵進行相似度的計算,此外還 提出在資料儲存時以及在找出資料共同出現特徵時的平行計算架構。論文[15]
中除了利用 MapReduce 架構解決相似資料配對問題外,為了節省資料在不同 處理器間彼此互相傳遞的數量,提出一套自動評估負載平衡並分配工作的架 構,可以針對各種資料的不同特性,把資料彈性的分配工作給不同處理器,
作者先把資料分成若干群,把群的文件資料與可能跟該群相似的文件資料交
付給處理器,資料可能被分配到多個處理器,可以節省處理器間互相傳遞的 成本。論文[8]使用三種不同方式結合反向串列索引,目的為減少 MapReduce 在相似資料配對問題上所花費的時間。論文[10]將暴力法、反向索引,及近 似演算法運用 MapReduce 方法實作相似資料配對問題並比較效率,其中近似 演算法只考慮出現次數前 n 名的特徵所計算的相似度,所產生的相似配對會 少於實際的相似配對,利用減少須計算特徵,以節省因需要計算特殊特徵所 花費的時間。作者把三種方法都使用 MapReduce 架構,利用平行架構計算相 似資料配,並分析相似配對在不同涵蓋率(recall)時所需花費的時間,研究顯 示近似演算法可以快速找出大部分的相似配對。