两款高性能并行计算引擎Storm和Spark比较
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
Spark基于這樣的理念,當數(shù)據(jù)龐大時,把計算過程傳遞給數(shù)據(jù)要比把數(shù)據(jù)傳遞給計算過程要更富效率。每個節(jié)點存儲(或緩存)它的數(shù)據(jù)集,然后任務被提交給節(jié)點。
所以這是把過程傳遞給數(shù)據(jù)。這和Hadoop?map/reduce非常相似,除了積極使用內存來避免I/O操作,以使得迭代算法(前一步計算輸出是下一步計算的輸入)性能更高。
Shark只是一個基于Spark的查詢引擎(支持ad-hoc臨時性的分析查詢)
而Storm的架構和Spark截然相反。Storm是一個分布式流計算引擎。每個節(jié)點實現(xiàn)一個基本的計算過程,而數(shù)據(jù)項在互相連接的網(wǎng)絡節(jié)點中流進流出。和Spark相反,這個是把數(shù)據(jù)傳遞給過程。
兩個框架都用于處理大量數(shù)據(jù)的并行計算。
Storm在動態(tài)處理大量生成的“小數(shù)據(jù)塊”上要更好(比如在Twitter數(shù)據(jù)流上實時計算一些匯聚功能或分析)。
Spark工作于現(xiàn)有的數(shù)據(jù)全集(如Hadoop數(shù)據(jù))已經(jīng)被導入Spark集群,Spark基于in-memory管理可以進行快訊掃描,并最小化迭代算法的全局I/O操作。
不過Spark流模塊(Streaming?Module)倒是和Storm相類似(都是流計算引擎),盡管并非完全一樣。
Spark流模塊先匯聚批量數(shù)據(jù)然后進行數(shù)據(jù)塊分發(fā)(視作不可變數(shù)據(jù)進行處理),而Storm是只要接收到數(shù)據(jù)就實時處理并分發(fā)。
不確定哪種方式在數(shù)據(jù)吞吐量上要具優(yōu)勢,不過Storm計算時間延遲要小。
總結下,Spark和Storm設計相反,而Spark?Steaming才和Storm類似,前者有數(shù)據(jù)平滑窗口(sliding?window),而后者需要自己去維護這個窗口。
轉載于:https://my.oschina.net/u/2338362/blog/508017
總結
以上是生活随笔為你收集整理的两款高性能并行计算引擎Storm和Spark比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj 3009
- 下一篇: 如何出色的研究 RGSS3 (三) 形式