Le travail de streaming se bloque lors de l’écriture sur un point de contrôle

Problème

Vous surveillez un travail de diffusion en continu et vous remarquez qu’il semble être bloqué lors du traitement des données.

Lorsque vous examinez les journaux, vous découvrez que la tâche est bloquée lors de l’écriture de données dans un point de contrôle.

INFO HDFSBackedStateStoreProvider: Deleted files older than 381160 for HDFSStateStoreProvider[id = (op=0,part=89),dir = dbfs:/FileStore/R_CHECKPOINT5/state/0/89]:
INFO StateStore: Retrieved reference to StateStoreCoordinator: org.apache.spark.sql.execution.streaming.state.StateStoreCoordinatorRef@56a4cb80
INFO HDFSBackedStateStoreProvider: Deleted files older than 381160 for HDFSStateStoreProvider[id = (op=0,part=37),dir = dbfs:/FileStore/R_CHECKPOINT5/state/0/37]:
INFO StateStore: Retrieved reference to StateStoreCoordinator: org.apache.spark.sql.execution.streaming.state.StateStoreCoordinatorRef@56a4cb80
INFO HDFSBackedStateStoreProvider: Deleted files older than 313920 for HDFSStateStoreProvider[id = (op=0,part=25),dir = dbfs:/FileStore/PYTHON_CHECKPOINT5/state/0/25]:

Cause

Vous essayez d’utiliser un emplacement de point de contrôle dans votre chemin d’accès local DBFS.

query = streamingInput.writeStream.option("checkpointLocation", "/FileStore/checkpoint").start()

Solution

Vous devez utiliser un stockage persistant pour les points de contrôle de diffusion en continu.

Vous ne devez pas utiliser DBFS pour le stockage des points de contrôle de streaming.