0
我有一個從Aws Kinesis讀取數據的流式應用程序。Spark與Kinesis流 - 如何強制檢查點?
默認情況下,當您創建流接收器時,您可以選擇在哪個間隔上執行檢查點,這是在DynamoDB上完成的。
在某個時候我想停止我的應用程序(sparkStreamingContext.stop()
),但在此之前我想強制檢查點。
有沒有可能這樣做?
我知道如果檢查點位於文件系統上,我應該做sparkStreamingContext.checkpoint(directoryName)
,但是kinesis的檢查點位於DynamoDB上,所以我該怎麼做?
謝謝!
好的,sparkStreamingContext.checkpoint(directoryName)函數的作用是什麼?我怎樣才能保證,當我停止應用程序時,只有我處理的數據是檢查點,並不是所有數據都被接收到(例如,如果我的微量批次晚了,並且需要超過微量批次間隔才能完成?) – nicola
@nicola它告訴Spark它應該檢查點到哪個目錄。你可以做的最好的是通過'sparkConf.set(「spark.streaming.stopGracefullyOnShutdown」,「true」)設置正常關機' –