大數據學習系列----Storm和Spark和Hadoop對比

Storm和Spark Streaming兩個都是分佈式流處理的開源框架。但二者之間有一些區別。node

時延

Storm能夠實現亞秒級數據處理,每次只處理一條event,而Spark Streaming能夠在一個短暫的時間窗口處理多條event。因此說Storm能夠實現亞秒級時延,Spark Streaming則有必定的時延。數據庫

容錯和數據保證

Storm中,每條記錄在系統中的移動都須要被標記跟蹤,因此Storm只能保證每條記錄最少被處理一次,可是容許從錯誤狀態恢復被屢次處理。編程

Spark Streaming僅僅須要在批處理對記錄進行跟蹤,因此版主每一個批處理記錄僅僅被處理一次,即便node節點掛掉。框架

實現和編程API

Storm主要是Clojure語言實現,Spark Streaming由Scala實現。Storm提供了Java API,同時支持其餘語言API。Spark Streaming支持Scala和Java語言。分佈式

批處理框架集成

Spark Streaming是在Spark框架上運行。能夠像使用其餘批處理代碼同樣寫Spark Streaming程序,或者在Spark中交互查詢。就減小了單獨編寫流式批處理程序和歷史數據處理程序。oop

場景

幾千個日誌生產者產生日誌文件,須要進行一些ETL操做如數據庫。日誌

若是用Hadoop,須要先存入hdfs,須要切分文件,調度計算。 若是使用Storm,一個程序監控日誌產生,產生一行經過傳輸系統發給Storm,Storm直接處理,處理完畢後入數據庫,整個過程能夠達到毫秒級別。orm

Hadoop使用磁盤做爲數據中介,Storm數據直接在內存中流轉。一個批處理,基於任務調度;一個實時處理,基於流。內存

相關文章
相關標籤/搜索