当火花无法从_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尚未提交,因此我可以从检查点的sources
,state
和/或offsets
中删除某些内容,以防止由于丢失而导致错误_spark_metadata/19.compact
档案?
答案 0 :(得分:2)
问题是您将检查点存储到S3。 S3中的检查点不是100%可靠。要了解S3不可靠的确切原因,请阅读this article。
解决方案1:使用HDFS存储检查点
解决方案2:如果要使用Amazon Web Services,请使用EFS。 The above article提供了设置EFS的所有步骤。
解决方案3:使用NFS