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

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

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

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

比較項 Storm Spark Streaming Hadoop MapReduce
血統 Twitter UC Berkeley AMP lab Google Lab
開源時間 2011.9.16 2011.5.24 2007.9.4
當前版本 0.9.4 1.3.1 2.7.0
相關資料 極多
依賴環境 Zookeeper、Java、Python hadoop client、Scala Java、ssh
技術語言 Java、Clojure Scala Java
支持語言 Any Scala、Java、Python Java & Others
延時 實時 秒級 較高
網絡帶寬 通常 通常 通常
硬盤IO 通常 較少
集羣支持 超過1000節點 數千個節點
吞吐量 較好
使用公司 淘寶、百度、Twitte、Groupon、雅虎 Intel、騰訊、淘寶、中移動、Google EBay、Facebook、Google、IBM
適用場景 實時的小數據塊的分析計算 較大數據塊又須要高時效性的小批量計算 低時效性的大批量計算

表格說明:apache

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

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

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

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

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

參考資料:post

相關文章
相關標籤/搜索