1. 程式人生 > >SparkStreaming原始碼執行架構圖解

SparkStreaming原始碼執行架構圖解

Spark Streaming基本原理:是將流資料分成小的時間片段(幾秒),以類似批處理方式來處理這部分小資料。
處理流程:

  1. Spark Streaming把實時輸入資料流以時間片Δt (如1秒)為單位切分成塊
  2. Spark Streaming會把每塊資料作為一個RDD,並使用RDD操作處理每一小塊資料
  3. 每個塊都會生成一個Spark Job處理
  4. 最終結果也返回多塊

Spark Streaming是建立在Spark上的實時計算框架,通過它提供豐富的API、基於記憶體的高速執行引擎,使用者可以結合流式、批處理和互動試查詢應用。

  1. Saprk的低延遲執行引擎(100MS+)可以用於實時處理
  2. 相比於strom(基於Record),RDD資料更容易做容錯。
  3. 可以與kafka,Flume,ZeroMQ等進行資料來源的對接
  • 先說一下各個元件:SparkStreaming包括Driver和Client端,StreamingContext執行在Driver端,包括如圖中的幾個程序。

執行步驟如下:

  1. step1:啟動流處理引擎StreamingContext,建立DStreamGraph/JobScheduler(Receiver Tacker管理者),Receiver Tacker通知客戶端ReceiverSuperVisor管理者和Receiver幹事,要開始接收資料。
  2. step2:ReceiverSuperVisor通知Receiver寫記憶體或者磁碟,一旦寫滿,通知Receiver Tacker管理者,提交資料儲存位置,把元資訊給Receiver Tacker。
  3. step3:StreamingContext的定時器JobGenerator,通知Receiver Tacker管理者提交資料給叢集,並要求DStreamGraph生成作業序號。
  4. step4:資料處理結果給外部。