並發編程架構之FlumeJava

來源:互聯網
上載者:User

基於map-shffle-reduce,google的一些開發人員也實現了另外一些好用的並行計算編程架構,FlumeJava就是其中的一種。

http://faculty.neu.edu.cn/cc/zhangyf/cloud-bigdata/papers/big%20data%20programming/FlumeJava-pldi-2010.pdf

從介紹來看,FlumeJava的出發點應該是map-reduce job不是那麼容易寫,並且如果一個任務需要很多的map-reduce過程結合就更麻煩了。而且當一連串的map-reduce需要啟動並執行時候,如何最佳化也不是件容易的事情。

FlumeJava讓並發編程更容易的設計基礎是,將map-shuffle-combine-reduce作為meta元素融合進來,並且提供一些基本的運算函數,比如count,group,join,這使得一些常見的編程任務變得比較容易。

當使用者有一連串的並發任務要一起啟動並執行時候,FlumeJava還會嘗試進行最佳化,採取的辦法有經典的loop fusion最佳化,也有傳統資料庫使用的push down condition最佳化,最佳化的核心基礎是減少檔案IO,減少重複啟動並執行任務,減少通訊。

實驗證明,FlumeJava的代碼量比普通的map-reduce job少20%以上,並且執行效率也接近人工最佳化之後的map-reduce job。

整體上看,FlumeJava主要是工程問題,開發人員考慮的是如何更簡單的進行並發編程,而不是簡單的提出一種新模型、新概念,這個務實的精神是google一貫的風格。

讓我感興趣的是FlumeJava的開發人員之前曾經開發了另外一款並發編程架構,叫做LumberJack,實踐證明,該工具很難用,於是FlumeJava誕生並贏得了不少開發人員的喜歡。比起現實中有些開發人員不關注使用者,只關注高深代碼,這層次高太多了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.