作者YunJonWei (楊宗緯)
看板Soft_Job
標題Re: [請益] MapReduce coding 經驗
時間Wed Oct 9 20:23:12 2013
※ 引述《guest2 (wayne)》之銘言:
: 版上的各位大大你好,因為實驗室研究的關係想跟各位請教一些問題
: 1. 各位會用Map Reduce的方法寫怎樣的應用呢?
: 2. 各位寫Map Redue的code的時候有出現過bug嗎?有的話是怎樣的bug呢?
: 實驗室想做Map Reduce程式的驗證,為此我們想要知道各位會在怎樣的應用上
: 使用Map Reduce的方法,有遭遇到怎樣的bug。我們需要知道大家coding上容易
: 出現怎樣的bug,我們才有辦法產生相對應的abstract model,因為目前看到的
: 課本上的應用都比較簡單一些,比較難想像過程中需要考量的問題。不知版上的
: 大家能不能分享一下coding的經驗,謝謝大家。
其實 MapReduce 藏了很多舊東西,換個方式包裝與標準化而已。
Hadoop也僅是把 MapReduce 實作出來的 "其中一套" 系統。
我建議你不要被 MapReduce這個詞迷惑,他就是分散式資料處理的一種方式而已。
所以你的問題可以簡化成:
1. 分散式資料處理有什麼樣的應用?
加快處理速度、處理單台電腦無法負荷的計算量。
什麼領域都用得到(多媒體、影像、廣告點選、各種系統紀錄檔...)
2. 分散式資料處理有什麼樣的 Bug?
atomic 運算導致資料不一致、工作之間互鎖、資料漏分析、
有時序的資料因傳輸過程時序不一,導致資料漏分析、..
工作分派不均,導致效能差
演算法設計錯誤導致分析效率極差
程式寫錯,導致效能極好,但結果是錯誤的。
MapReduce 出現後,解決的都是舊問題,
而且不用MapReduce,用舊的分散式系統原則都可以解
建議你如果只是學校畢業要用,抄一抄傳統分散式系統的東西就可以了。
※ 編輯: YunJonWei 來自: 122.146.69.104 (10/09 20:24)
推 guest2:謝謝您的回答,讓我思考一下 10/09 21:31
推 guest2:對於工作之間互鎖這件事,在hadoop上就是指使用了 10/09 21:35
→ guest2:Job.waitForCompletion()、Job.submit()之類的code吧 10/09 21:35
→ guest2:所以大家應用時真的會將一連串的JOB串起來使用嗎? 10/09 21:37
→ guest2:因為我沒有看過這樣的例子,所以想請教各位經驗 10/09 21:38
→ realmeat:把job串起來還蠻常用的 10/09 22:08
→ YunJonWei:我自己的經驗是,Job串起來用是因為某Job可重複使用, 10/10 10:53
→ YunJonWei:舉個例子,用圖資修正GPS的位置資料,這所有分析GPS的 10/10 10:55
→ YunJonWei:應用都會用到,因此將用圖資修正GPS這個演算法,獨立寫 10/10 10:56
→ YunJonWei:成一個MapReduce,讓其他分析可串這個流程。 10/10 10:56