Spark Streaming 是基於spark的流式批處理引擎,其基本原理是把輸入數據以某一時間間隔批量的處理,當批處理間隔縮短到秒級時,即可以用於處理實時數據流。spa
本節描述了Spark Streaming做業的執行流程。線程
圖1 Spark Streaming做業的執行流程blog
具體流程:ci
-
客戶端提交做業後啓動
Driver
,Driver是
spark做業的Master
。
-
每一個做業包含多個Executor,每一個Executor以線程的方式運行task,Spark Streaming至少包含一個
receiver task
。
-
Receiver
接收數據後生成Block,並把
BlockId
彙報給Driver,而後備份到另一個Executor上。
-
ReceiverTracker
維護Reciver彙報的BlockId。
-
Driver定時啓動
JobGenerator
,根據Dstream的關係生成邏輯RDD,而後建立Jobset,交給JobScheduler。
-
JobScheduler
負責調度Jobset,交給DAGScheduler,DAGScheduler根據邏輯RDD,生成相應的Stages,每一個stage包含一到多個task。
-
TaskScheduler
負責把task調度到Executor上,並維護task的運行狀態。
-
當tasks,stages,jobset完成後,單個batch纔算完成。
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。spark