在流處理以前,數據一般存儲在數據庫,文件系統或其餘形式的存儲系統中。應用程序根據須要查詢數據或計算數據。這就是傳統的靜態數據處理架構。Hadoop 採用 HDFS 進行數據存儲,採用 MapReduce 進行數據查詢或分析,這就是典型的靜態數據處理架構。html
而流處理則是直接對運動中的數據的處理,在接收數據時直接計算數據。git
大多數數據都是連續的流:傳感器事件,網站上的用戶活動,金融交易等等 ,全部這些數據都是隨着時間的推移而建立的。github
接收和發送數據流並執行應用程序或分析邏輯的系統稱爲流處理器。流處理器的基本職責是確保數據有效流動,同時具有可擴展性和容錯能力,Storm 和 Flink 就是其表明性的實現。數據庫
流處理帶來了靜態數據處理所不具有的衆多優勢:apache
Spark Streaming 是 Spark 的一個子模塊,用於快速構建可擴展,高吞吐量,高容錯的流處理程序。具備如下特色:架構
Spark Streaming 提供稱爲離散流 (DStream) 的高級抽象,用於表示連續的數據流。 DStream 能夠歷來自 Kafka,Flume 和 Kinesis 等數據源的輸入數據流建立,也能夠由其餘 DStream 轉化而來。在內部,DStream 表示爲一系列 RDD。框架
storm 和 Flink 都是真正意義上的流計算框架,但 Spark Streaming 只是將數據流進行極小粒度的拆分,拆分爲多個批處理,使得其可以獲得接近於流處理的效果,但其本質上仍是批處理(或微批處理)。ide
更多大數據系列文章能夠參見 GitHub 開源項目: 大數據入門指南微服務