開源分散式計算系統框架比較

分散式計算在許多領域都有廣泛需求,目前流行的分散式計算框架主要有 Hadoop MapReduce, Spark Streaming, Storm; 這三個框架各有優勢,現在都屬於 Apache 基金會下的頂級項目,下文將對三個框架的特點與適用場景進行分析,以便開發者能快速選擇適合自己的框架進行開發。

Hadoop MapReduce 是三者中出現最早,知名度最大的分散式計算框架,最早由 Google Lab 開發,使用者遍布全球(Hadoop PoweredBy);主要適用於大批量的集群任務,由於是批量執行,故時效性偏低,原生支持 Java 語言開發 MapReduce ,其它語言需要使用到 Hadoop Streaming 來開發。Spark Streaming 保留了 Hadoop MapReduce 的優點,而且在時效性上有了很大提高,中間結果可以保存在內存中,從而對需要迭代計算和有較高時效性要求的系統提供了很好的支持,多用於能容忍小延時的推薦與計算系統。Storm 一開始就是為實時處理設計,因此在實時分析/性能監測等需要高時效性的領域廣泛採用,而且它理論上支持所有語言,只需要少量代碼即可完成適配器。

Advertisements

下面的表格是對三者部分特性的比較,描述時間為 2015-5-3,三個項目均處於快速迭代中,文中描述特性會隨時產生變化,如果與官方文檔產生出入以官方文檔為準。

比較項StormSpark StreamingHadoop MapReduce
血統TwitterUC Berkeley AMP labGoogle Lab
開源時間2011.9.162011.5.242007.9.4
當前版本0.9.41.3.12.7.0
相關資料極多
依賴環境Zookeeper、Java、Pythonhadoop client、ScalaJava、ssh
技術語言Java、ClojureScalaJava
支持語言AnyScala、Java、PythonJava & Others
延時實時秒級較高
網路帶寬一般一般一般
硬碟IO一般較少
集群支持超過1000節點數千個節點
吞吐量較好
使用公司淘寶、百度、Twitte、Groupon、雅虎Intel、騰訊、淘寶、中移動、GoogleEBay、Facebook、Google、IBM
適用場景實時的小數據塊的分析計算較大數據塊又需要高時效性的小批量計算低時效性的大批量計算

表格說明:

Advertisements

  • 開源時間以 github 上最早的 commit 或者官網上最早發布版本的時間為準。

  • 當前版本與特性描述截止 2015-5-3。

  • 相關資料量通過比較官方文檔、搜索引擎、論壇等途徑得出。

  • 部分比較數據來源於實踐或相關文章(未找到出處)。

本文會保持更新,如果數據發現有出入,歡迎指正。

參考資料:

  • Hadoop 官網

  • Spark Streaming

  • Storm 官網

原文地址:http://www.tnidea.com/dot-net-drpc-storm.html

未經授權,拒絕任何全文及摘要轉載!

歡迎關注微信公眾號:CareyTzou(dotNet大數據)

Advertisements

你可能會喜歡