Spark Streaming平滑停止

2021-09-24 02:37:00 字數 965 閱讀 1149

思路: 在driver端,啟動乙個檢測線程,週期性檢測hdfs上的標記檔案是否存在,存在則平滑停止,不存在則繼續執行。偽**如下:

val ssc =

newstreamingcontext

(sparkconf,durations.

seconds(5

))// dstream、transformation、action ......

// ...

// ...

// ...

// 檢查間隔

val checkmillis=

30000

// 停止標記

val stopfilemarker=

// 後台檢查執行緒

newthread

(new

runnable

else

thread.

sleep

(checkmillis)}}

}).start()

// 啟動

ssc.

start()

ssc.

awaittermination

()

除了以上的標記停止法外,還嘗試了其他方式,如下:

設定spark.streaming.stopgracefullyonshutdown=true,從spark webuikill 作業,效果不理想。

設定spark.streaming.stopgracefullyonshutdown=true,從spark webui上找到driver,然後ssh到driver節點,再找到對應的driver程序,用kill -sigterm,可以實現平滑停止。但太過複雜。

綜上,可以使用標記停止法來平滑停止spark streaming作業。

Spark Streaming入門詳解

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

Spark Streaming 程式監控

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

spark streaming讀取kafka示例

spark streaming讀取kafka示例,其中 spark streaming優雅的關閉策略優化部分參考 如何管理spark streaming消費kafka的偏移量部分參考 spark向kafka中寫入資料部分參考 object demo 建立streamingcontext return...