spark streaming原理

Spark Streaming 是基於spark的流式批處理引擎,其基本原理是把輸入數據以某一時間間隔批量的處理,當批處理間隔縮短到秒級時,即可以用於處理實時數據流。spa

本節描述了Spark Streaming做業的執行流程。線程

圖1 Spark Streaming做業的執行流程blog

具體流程:ci

  1. 客戶端提交做業後啓動 Driver ,Driver是 spark做業的Master
  2. 每一個做業包含多個Executor,每一個Executor以線程的方式運行task,Spark Streaming至少包含一個 receiver task
  3. Receiver 接收數據後生成Block,並把 BlockId 彙報給Driver,而後備份到另一個Executor上。
  4. ReceiverTracker 維護Reciver彙報的BlockId。
  5. Driver定時啓動 JobGenerator ,根據Dstream的關係生成邏輯RDD,而後建立Jobset,交給JobScheduler。
  6. JobScheduler 負責調度Jobset,交給DAGScheduler,DAGScheduler根據邏輯RDD,生成相應的Stages,每一個stage包含一到多個task。
  7. TaskScheduler 負責把task調度到Executor上,並維護task的運行狀態。
  8. 當tasks,stages,jobset完成後,單個batch纔算完成。

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。spark

相關文章
相關標籤/搜索