兩款高性能并行計算引擎Storm和Spark比較

jopen 9年前發布 | 150K 次閱讀 Storm 分布式/云計算/大數據

來自http://blog.csdn.net/iefreer/article/details/32715153

Spark基于這樣的理念,當數據龐大時,把計算過程傳遞給數據要比把數據傳遞給計算過程要更富效率。每個節點存儲(或緩存)它的數據集,然后任務被提交給節點。

所以這是把過程傳遞給數據。這和Hadoop map/reduce非常相似,除了積極使用內存來避免I/O操作,以使得迭代算法(前一步計算輸出是下一步計算的輸入)性能更高。

Shark只是一個基于Spark的查詢引擎(支持ad-hoc臨時性的分析查詢)

而Storm的架構和Spark截然相反。Storm是一個分布式流計算引擎。每個節點實現一個基本的計算過程,而數據項在互相連接的網絡節點中流進流出。和Spark相反,這個是把數據傳遞給過程。

兩個框架都用于處理大量數據的并行計算。

Storm在動態處理大量生成的“小數據塊”上要更好(比如在推ter數據流上實時計算一些匯聚功能或分析)。

Spark工作于現有的數據全集(如Hadoop數據)已經被導入Spark集群,Spark基于in-memory管理可以進行快訊掃描,并最小化迭代算法的全局I/O操作。

不過Spark流模塊(Streaming Module)倒是和Storm相類似(都是流計算引擎),盡管并非完全一樣。

Spark流模塊先匯聚批量數據然后進行數據塊分發(視作不可變數據進行處理),而Storm是只要接收到數據就實時處理并分發。

不確定哪種方式在數據吞吐量上要具優勢,不過Storm計算時間延遲要小。

總結下,SparkStorm設計相反,而Spark Steaming才和Storm類似,前者有數據平滑窗口(sliding window),而后者需要自己去維護這個窗口。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!