除了 Hadoop 還有哪些分散式計算平台?優勢各自是什麼?
大致說一下目前在工業界(學術界)里比較流行的幾種分散式計算框架(平台):
1:MapReduce(MR),最為general和流行的一個分散式計算框架,其開源實現Hadoop已經得到了極為廣泛的運用(Facebook, Yahoo!等等),同時在Hadoop基礎上發展起來的項目也有很多(Hive是發展最好的),另外像Cloudera,Hortonworks,MapR這樣的在Hadoop基礎上發展起來的公司也有很多。
2:Pregel,和MR一樣也是Google發明的,其優勢是在完成一些適合於抽象為圖演算法的應用的計算時可以更為高效,Giraph可以算是一個比較好的發展中的開源實現。
3:Storm,Twitter的項目,號稱Hadoop的實時計算平台,對於一些需要real time performance的job可以擁有比MR更高的效率。
4:Spark,UC Berkeley AMPLab的項目,其很好地利用了JVM中的heap,對於中間計算結果可以有更好的緩存支持,因此其在performance上要比MR高出很多。Shark是其基礎上類似於Hive的一個項目。
5:Dryad和Scope,都是MR(Microsoft Research)的項目,從paper上來看Dryad是一個更為general purpose的計算框架,在vertices里實現計算,通過channels實現communication,兩者組成一個graph workflow;而Scope有點類似於Hive和Shark,都是將某種類似於SQL的script language編譯成可以在底層分散式平台上計算的job。但是這兩個項目因為不開源,所以資料不多,也沒有開源項目那樣的community。
來個小眾的。
樂天用Ruby做過好一些分散式系統,例如
分散式計算:fairy-prj -
fairy: A framework for distributed processing in Ruby
分散式KV存儲:楽天、Rubyベースの大規模分散処理基盤ソフト「ROMA」をオープンソースで公開
目前看來成體系的,有完整生態系統和強大技術經濟支持的方案無疑是Apache Spark?。
推薦關注新浪微博 @Spark_China
問題和高票答案的年代都久遠了,但很多用戶仍在關心這個問題。
Hadoop 和 Spark 的發展都比較不錯,不過這裡要補充一個很好的技術: Apache Flink - Flink 是原生的流處理系統,社區雖然沒有 Spark 那麼火,但低延遲性保持得更好,API 和容錯性比較完善,部署容易,使用簡單,Batch 和 Streaming 使用同一處理引擎,只需要很少配置就能實現高吞吐率和低延遲。
現在很講究實時計算,Flink 可以成為一個不錯的選擇。
不要在意那麼多技術,新技術永遠學不完,多關注本質,那麼多計算機 經典書,多看看,看完什麼新技術都是浮雲,圖樣圖森破。
BigCore開發平台,後台資料庫為MangoDB,部署簡單,支持大數據,高並發,效果不錯的。
HPCC Systems
Disco.不知道有人聽說過嗎?似乎Nokia相關的開源項目都不溫不火。
推薦閱讀: