SparkStreaming 資料接收原理

2021-09-27 04:36:41 字數 903 閱讀 6468

sparkstreaming的資料接收原理

spark streaming資料接收主要是發生在receiver啟動之後,啟動的乙個元件blockgenerator,通過這個元件來進行資料的接收和儲存。具體的流程如下:

如上圖所示,假設receiver接收的資料來源來自kafka。receiver啟動的時候會先啟動blockgenerator,呼叫它的start方法啟動blockgenerator。

blockgenerator首先將接收到資料儲存到乙個currentbuffer的快取中,接著blockintervaltimer定時器會每隔一段時間(預設200ms),就去將currentbuffer中的資料封裝為乙個block;將封裝好的block加入到blocksforpushing佇列中,它裡面儲存的是乙個乙個的block(預設大小是10),然後blockpushingthread,這個執行緒會從blocksforpushing中取出block,將其推送到pusharraybuffer中,然後將這裡面的block資料儲存到executor對應的blockmanager中,並且傳送乙份blockinfo資訊到receivertracker中。

以上就是資料接收和儲存過程,這裡主要是使用了blockgenerator這個元件,它裡面有兩個重要的部分,乙個是將資料封裝成block的定時器,乙個是將產生的block進行推送儲存到blockmanager上,以及傳送到receivertracker上。這裡需要注意兩個引數,乙個是封裝block的間隔block interval,spark.streaming.blockinterval 預設是200ms,還有就是儲存block的佇列大小spark.streaming.blockqueuesize,預設是10,這兩個引數可以調節。

sparkstreaming執行緒數小於2時出錯!

stage 0 0 1 1 stage 10 0 1 1 20 02 11 11 32 55 warn randomblockreplicationpolicy expecting 1 replicas with only 0 peer s.20 02 11 11 32 55 warn blockm...

Spark Streaming入門詳解

背景 使用spark主要是使用spark streaming,spark streaming的魔力之所在於 1.流式處理,如今是乙個流處理時代,一切與流不相關的都是無效的資料。3.spark streaming本身是乙個程式,spark streaming在處理資料的時候會不斷感知資料。所以對構建複...

Spark Streaming 程式監控

官網中指出,spark中專門為sparkstreaming程式的監控設定了額外的途徑,當使用streamingcontext時,在web ui中會出現乙個 streaming 的選項卡,在此選項卡內,統計的內容展示如下 這其中包括接受的記錄數量,每乙個batch內處理的記錄數,處理時間,以及總共消耗...