日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark详解(十三):Spark Streaming 运行架构分析

發布時間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark详解(十三):Spark Streaming 运行架构分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 運行架構

SparkStreaming的主要功能包括流處理引擎的流數據接收與存儲以及批處理作業的生成與管理,而Spark核心負責處理Spark Streaming發送過來的作用。Spark Streaming分為Driver端和Client端,運行在Driver端為Streaming Context實例。該實例包括DStreamGraph和JobScheduler(包括ReceiveTracker和JobGenerator)等,而Client包括ReceiveSupervisor和Receiver等。

SparkStreaming進行流數據處理大致上可以分為:啟動流處理引擎,接受以及存儲流數據、處理流數據和輸出處理結果等4個步驟,其運行架構圖如下所示:

(1)初始化StreamContext對象,在該對象啟動過程中實例化DStreamGraph和JobScheduler。其中DStreamGraph用于存放DStream之間的依賴關系等信息,而JobScheduler包括ReceiverTracker和JobGenerator。其中ReceiverTracker為Driver端流數據接收器(Recevier)管理者,JobGenerator為批處理作業生成器。在ReceiverTracker啟動過程中,根據流數據接收器分發策略通知對應的Executor的流數據接收器管理者(RecevierSupervisor)啟動,再由RecevierSupervisor啟動流數據接收器Recevier。

(2)當流數據接收器Recevier啟動之后,持續不斷地接受實時流數據,根據過來的數據的大小判斷,如果數據量很小,則贊成多條數據成一塊,然后再進行塊存儲;如果數據量大,則直接進行塊存儲。對于這些數據Recevier直接交給RecevierSupervisor,由其進行數據存儲操作。塊存儲根據設置是否預寫日志分為兩種,一種是使用非預寫日志BlockManagerBasedBlockHandler方法之間寫到Worker內存或者磁盤中,另一種是進行預寫日志WriteAheadLogBasedBlockHandler方法,即在預寫日志同時把數據寫入到Worker的內存或者磁盤中。數據存儲完畢之后,RecevierSupervisor會把數據存儲的元信息上報給RecevierTracker,RecevierTracker再把這些信息轉發給RecevierBlockTracker中,由他負責管理收到的數據塊元數據信息。

(3)在StreamingContext中的JobGenerator維護一個定時器,該定時器在批處理時間到來時會進行生成作業的操作。在該操作中進行如下操作:

  • 通知RecevierTracker將接收到的數據進行提交,在提交時采用synchronized關鍵字進行處理,保證每條數據劃入到一個且只有一個批次中。
  • 要求DstreamGraph根據DStream依賴關系生成作業序列Seq[Job]
  • 從第一步RecevierTracker中獲取本次批次的元數據。
  • (4)把批處理時間、作業序列Seq[Job]和本批次的元數據包裝成JobSet,調用JobScheduler.submitJobSet(JobSet)提交給JobScheduler,JobScheduler將這些作業發送給SparkCore進行處理,由于該執行為異步執行,因此本步執行速度非常快。

    (5)只要提交結束(不管作業是否被執行),Spark Streaming對整個系統做一個檢查點(Checkpoint)

    (6)在SparkCore的作業對數據進行處理, 處理完畢之后輸出到外部系統中,如數據庫或文件系統,輸出的數據可以被外部使用。由于實時流數據的數據源不斷地流入,Spark會周期地進行數據處理,相應也會不斷地產生輸出結果。

    總結

    以上是生活随笔為你收集整理的Spark详解(十三):Spark Streaming 运行架构分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。