2. 通過案例對透徹理解三板斧之二:解密SparkStreaming運行機制和架構(gòu)進階之運行機制和架構(gòu)

Spark core上面有4個流行的框架:SparkSQL、流計算、機器學(xué)習(xí)、圖計算。從框架入手可以更清晰地了解Spark Core的內(nèi)容。

Spark Streaming工作原理:

Spark Sreaming接收實時輸入數(shù)據(jù)流并將它們按批次劃分,然后交給Spark引擎處理生成按照批次劃分的結(jié)果流。

DStream Graph是RDD DAG 的模板,DStream是邏輯級別的,而RDD是物理級別的。DStream是隨著時間的流動內(nèi)部將集合封裝RDD。

DStream就是對RDD操作封裝的集合,對DStream操作的transform的操作就會作用于內(nèi)部封裝的集合的每一個RDD,所以對RDD的操作就產(chǎn)生了RDD之間的依賴關(guān)系就構(gòu)成了DAG的依賴關(guān)系。

為什么會對RDD進行操作?這個是對DStream操作的業(yè)務(wù)邏輯,也就是空間維度決定的,這空間維度作用于DStream這樣一個集合,隨著時間的流逝每個Batch Interval形成了具體的數(shù)據(jù)集產(chǎn)生了RDD,

對RDD進行transform操作,進而形成了RDD的依賴關(guān)系RDD DAG,形成job。然后jobScheduler根據(jù)時間調(diào)度,基于RDD的依賴關(guān)系,把作業(yè)發(fā)布到Spark Cluster上去運行,不斷的產(chǎn)生Spark作業(yè)。

基于Spark Core的都是基于RDD編程,而基于Spark Streaming的則是基于DStream編程。DStream就是在RDD的基礎(chǔ)上,加上了時間維度。

Spark Steaming精妙之處在于Job的劃分只依賴于時間,這最大程度的解耦合。

Spark Steaming具體的Job運行在Spark Cluster之上,系統(tǒng)容錯至關(guān)重要。單個Job的容錯機制和RDD的容錯機制相同,此外還有自己框架的容錯機制,如可以動態(tài)調(diào)整CPU、線程等資源。

事物處理的關(guān)鍵在于系統(tǒng)崩潰的情況下仍然能保持語意的一致性。

那DStream Graph是根據(jù)什么生成的呢?DStream(離散流)的依賴關(guān)系。

DStream的具體實現(xiàn)子類

資料來源于:

DT_大數(shù)據(jù)夢工廠(Spark發(fā)行版本定制)微信公眾號:DT_Spark

新浪微博:http://www.weibo.com/ilovepains

如果您對大數(shù)據(jù)Spark感興趣,可以免費聽由王家林老師每天晚上20:00開設(shè)的Spark永久免費公開課,地址YY房間號:68917580

微信公眾號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容