第2課:通過案例對SparkStreaming透徹理解三板斧之二:解密SparkStreaming運行機制和架構

本期內容:

解密Spark Streaming運行機制

解密Spark Streaming架構


一、Spark Streaming工作原理:Spark Sreaming接收實時輸入數據流並將它們按批次劃分,然後交給Spark引擎處理生成按照批次劃分的結果流。


二、DStream是邏輯級別的,而RDD是物理級別的。DStream是隨着時間的流動內部將集合封裝RDD。對DStream的操作,轉過來對其內部的RDD操作。


Spark Core處理的每一步都是基於RDD的,RDD之間有依賴關係。

如上圖:RDDDAG顯示的是有3Action,會觸發3jobRDD自下向上依賴,RDD產生job就會具體的執行。

DSteam Graph中可以看到,DStream的邏輯與RDD基本一致,它就是在RDD的基礎上加上了時間的依賴。

RDDDAG又可以叫空間維度,也就是說整個Spark Streaming多了一個時間維度,也可以成爲時空維度。

從這個角度來講,可以將Spark Streaming放在座標系中。其中Y軸就是對RDD的操作,RDD的依賴關係構成了整個job的邏輯,而X軸就是時間。隨着時間的流逝,固定的時間間隔(Batch Interval)就會生成一個job實例,進而在集羣中運行。

三、



空間維度:代表是RDD的依賴關係構成的具體的處理邏輯步驟,是用DStreaming Graph來表示的;

時間維度:按照特定時間間隔不斷地生成Job的實例並在集羣上運行;


隨着時間的流程基於DStreamGraph不斷地生成以RDD Graph也就是DAG的方式產生JOB,

並通過JobScheduler的線程池的方式提交給Spark Cluster不斷地執行;


(1)需要RDD DAG的生成模板 DStreamGraph;

(2)需要基於Timeline的Job控制器;

(3)inputStreams 和 outputStreams代表 數據輸入和輸出;

(4)具體Job運行在Spark Cluster 之上,此時系統容錯就至關重要;

(5)事務處理,在處理出現崩潰的情況下 如何保證Exactly Once的事務語義



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章