流作業在寫入檢查點時卡住

流作業似乎卡住了,即使沒有拋出錯誤。您正在使用DBFS進行檢查點存儲,但它已被填滿。

寫的何塞·岡薩雷斯

最後發布日期:2022年5月19日

問題

您正在監視一個流作業,並注意到它在處理數據時似乎卡住了。

當您查看日誌時,您發現作業在向檢查點寫入數據時卡住了。

INFO hdfsbackkedstatestoreprovider: Deleted files than 381160 for HDFSStateStoreProvider[id = (op=0,part=89),dir = dbfs:/FileStore/R_CHECKPOINT5/state/0/89]: INFO StateStore: retrieve reference to StateStoreCoordinator: org.apache.spark.sql. execute .streaming.state。StateStoreCoordinatorRef@56a4cb80 INFO hdfsbackkedstatestoreprovider:為HDFSStateStoreProvider刪除大於381160的文件[id = (op=0,part=37),dir = dbfs:/FileStore/R_CHECKPOINT5/state/0/37]: INFO StateStore:檢索到StateStoreCoordinator的引用:org.apache.spark.sql. execute .stream .state。StateStoreCoordinatorRef@56a4cb80 INFO hdfsbackkedstatestoreprovider: Deleted files than 313920 for HDFSStateStoreProvider[id = (op=0,part=25),dir = dbfs:/FileStore/PYTHON_CHECKPOINT5/state/0/25]:

導致

您正在嚐試使用本地DBFS路徑中的檢查點位置。

%scala query = streamingInput.writeStream。選項(“checkpointLocation”、“/ FileStore /檢查站”).start ()

解決方案

您應該為流檢查點使用持久存儲。

您不應該使用DBFS來流化檢查點存儲。