
16.13 以 Map-Reduce 技巧處理大量檔案
|
669
討論說明
如果你想練習本文所述的
map-reduce
架構範例,請使用
Dictionary.m
與
MapReduce.m
套件,這些套件的程式碼內容以解說為主,請於範例中載
入 這 些 套 件, 並 記 得 使 用
DistributeDefinitions
指 令 於 遠 端 核 心 建 立
map
、
reduce
與
parse
等函數。[Page-673]
mapReduce.nb
檔案中提供一些使用範例。
如果你沒有
map-reduce
程式架構的設計經驗,在動手做之前最好先參考「延伸資訊」所
列的資訊,由 Google 研究員所撰寫的原創論文提供了快速入門的概述,並舉出比字數
計算更進階的應用。關於
map-reduce
架構,首先應了解的是,它只有在須處理的檔案數
量及平行運算核心數量都很大的情況下才是一個有效率的方法。須處理的資料量遠高於
單一計算核心所能提供的記憶體,是使用此架構的最佳情況,此時須分配至許多遠端核
心進行處理。為了證明這一點,以下考慮須進行字數計算的檔案數量不多的情況。
ch16.indd 669 2014/4/2 下午 04:11:18