1、Spark Streaming設計
Spark Streaming可整合多種輸入數據源,如Kafka、Flume、HDFS,甚至是普通的TCP套接字。經處理後的數據可存儲至文件系統、數據庫,或顯示在儀表盤裏。算法
![](http://static.javashuo.com/static/loading.gif)
Spark Streaming的基本原理是將實時輸入數據流以時間片(秒級)爲單位進行拆分,而後經Spark引擎以相似批處理的方式處理每一個時間片數據。數據庫
![](http://static.javashuo.com/static/loading.gif)
Spark Streaming最主要的抽象是DStream(Discretized Stream,離散化數據流),表示接二連三的數據流。在內部實現上,Spark Streaming的輸入數據按照時間片(如1秒)分紅一段一段,每一段數據轉換爲Spark中的RDD,這些分段就是Dstream,而且對DStream的操做都最終轉變爲對相應的RDD的操做。架構
![](http://static.javashuo.com/static/loading.gif)
2、Spark Streaming與Storm的對比
- Spark Streaming和Storm最大的區別在於,Spark Streaming沒法實現毫秒級的流計算,而Storm能夠實現毫秒級響應。
- Spark Streaming構建在Spark上,一方面是由於Spark的低延遲執行引擎(100ms+)能夠用於實時計算,另外一方面,相比於Storm,RDD數據集更容易作高效的容錯處理。
- Spark Streaming採用的小批量處理的方式使得它能夠同時兼容批量和實時數據處理的邏輯和算法,所以,方便了一些須要歷史數據和實時數據聯合分析的特定應用場合。
![](http://static.javashuo.com/static/loading.gif)
3、從「Hadoop+Storm」架構轉向Spark架構
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
採用Spark架構具備以下優勢:oop
- 實現一鍵式安裝和配置、線程級別的任務監控和告警;
- 下降硬件集羣、軟件維護、任務監控和應用開發的難度;
- 便於作成統一的硬件、計算平臺資源池。