原文連接 http://xiguada.org/spark-streaming-run/
Spark Streaming 是基於spark的流式批處理引擎,其基本原理是把輸入數據以某一時間間隔批量的處理,當批處理間隔縮短到秒級時,便可以用於處理實時數據流。
本節描述了Spark Streaming作業的執行流程。

圖1 Spark Streaming作業的執行流程
具體流程:
-
客戶端提交作業后啟動Driver,Driver是park作業的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才算完成。
