修复火花结构流媒体中的检查点

时间:2018-05-04 18:01:45

标签: apache-spark spark-structured-streaming

当火花无法从_spark_metadata文件夹中找到文件时,我遇到了生产中检查点的问题

18/05/04 16:59:55 INFO FileStreamSinkLog: Set the compact interval to 10 [defaultCompactInterval: 10]
18/05/04 16:59:55 INFO DelegatingS3FileSystem: Getting file status for 's3u://data-bucket-prod/data/internal/_spark_metadata/19.compact'
18/05/04 16:59:55 ERROR FileFormatWriter: Aborting job null.
java.lang.IllegalStateException: s3u://data-bucket-prod/data/internal/_spark_metadata/19.compact doesn't exist when compacting batch 29 (compactInterval: 10)

目前已经有question asked但没有解决方案。

在检查点文件夹中,我看到批次29尚未提交,因此我可以从检查点的sourcesstate和/或offsets中删除某些内容,以防止由于丢失而导致错误_spark_metadata/19.compact档案?

1 个答案:

答案 0 :(得分:2)

问题是您将检查点存储到S3。 S3中的检查点不是100%可靠。要了解S3不可靠的确切原因,请阅读this article

解决方案1:使用HDFS存储检查点

解决方案2:如果要使用Amazon Web Services,请使用EFS。 The above article提供了设置EFS的所有步骤。

解决方案3:使用NFS

相关问题