Spark Streaming 執行流程


原文連接  http://xiguada.org/spark-streaming-run/ ‎

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

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

圖1 Spark Streaming作業的執行流程

具體流程:

  1. 客戶端提交作業后啟動Driver,Driver是park作業的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才算完成。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM