Re: [情報] 利用智慧型手機建構雲端

看板Cloud作者 (喲)時間14年前 (2010/08/23 11:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《hilorrk (Cary)》之銘言: : 不才第一次接觸到這種新穎的概念還是覺得挺特別的 : 也感慨自己對MapReduce的瞭解仍不夠深 : 不該把它局限在語言模式、multi-core、cluster : 其實在雲端的領域中 仍有許多發揮想像力的空間! : 消息來自MIT Tech. Review : http://www.technologyreview.com/blog/mimssbits/25609/ : Misco網站 : http://www.cs.ucr.edu/~jdou/misco/ : 相關paper : http://portal.acm.org/citation.cfm?id=1839294.1839332 : 如果對MapReduce不熟 可以查查wikipedia : 或是看看google這篇paper(比起bigtable、GFS和chubby 它好讀多了) : http://labs.google.com/papers/mapreduce.html 關於MapReduce,看了一篇用communicating sequential processes討論的文章,蠻好. "Analyzing MapReduce with CSP" http://www.iist.unu.edu/www/docs/techreports/reports/report421.pdf#page=95 裡頭主要用有名的C.A.R. Hoare给的語言來討論這個分散式計算架構. 可以看到一些式子,像 SYSTEM ::= MASTER || MAPPER || REDUCER || FS 表達系統為MASTER,MAPPER,REDUCER和FS(File system)平行計算組成. 然後,像MAPPER是 MAPPER ::=||_t Mapper_t, t in T 表示MAPPER是由幾個處理map工作的Mapper_t的集合. 須注意Map-Reduce分為幾個角色: master, mapper, map task, reducer, reduce task, file system. 而mapper, reducer都是一個類別要分出好多instance的, 而不是一個單位就搞定. 然後,文章對訊息也有定義,像 Message ::= R#FileName#ChunkIndex 是Master發送給Mapper的訊息, 包含R是Reducer的數目,FileName檔名,和ChunkIndex區塊編號. 一個Mapper除了要知道map task之外,還要知道它要讀哪個檔案, 然後要知道工作做完之後要將結果分解為R個部份,才能分送到R個Reducer. Mapper的計算主體說是 cal(InputData) ::= map(InputData); sort({<key,value>_n}); combine({<key,value>_n}); partition({<key,V>_n'}). map(InputData) = {<key,value>_n} sort({<key,value>_n}) = {<key',value'>_n} combine({<key',value'>_n}) = {<key',V>_n'} partition({<key',V}_n'}) = {Split_k}, k in R 主要是表達map task的進行是先map,把一堆key-value丟出來. 然後要排序(?),grouping (即combine),然後分割成 R 個部份. 這裡包含了map計算之後的輸出資料是local store的要點. 不過,在這邊我覺得應該可以不要做排序. 因為輸出資料分割成R段之後 分送到R個Reducer,每個Reducer應該是從T個Mapper得到各自分別排序好的資料段落. T個資料段落雖然分別排序好,但是整體來看是沒排序的. 倒不如別排,就直接多個Grouper角色,用filter方式將資料整理成一群一群的. 在這裡可能有個題目,可以談一下(combine.sort)或是直接filter,哪個是較省事的方法. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.21.94.199
文章代碼(AID): #1CSUj_zn (Cloud)
討論串 (同標題文章)
文章代碼(AID): #1CSUj_zn (Cloud)