当前位置: 首页 > 知识库问答 >
问题:

修复火花结构化流中的检查点[重复]

易星纬
2023-03-14

我在生产中遇到检查点问题,当 spark 无法从_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)

已经提出了一个问题,但目前还没有解决方案

在检查点文件夹中,我看到批次29尚未提交,所以我可以从检查点的状态和/或偏移中删除一些内容,以防止火花因缺少_spark_metadata/19.compact文件而失败?

共有1个答案

裴心思
2023-03-14

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

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

解决方案2:如果你想使用亚马逊网络服务,使用EFS。上述文章详细介绍了设置EFS的所有步骤。

解决方案 3:使用 NFS

 类似资料:
  • 我正在使用微批处理()从Kafka stream读取消息,处理消息并通过将结果写入另一个Kafka主题。该作业(流式查询)被设计为“永远”运行,处理大小为10秒(处理时间)的微批。已设置选项,因为Spark需要检查点。

  • 我们正在构建一个使用Spark Streaming和Kafka的容错系统,并且正在测试Spark Streaming的检查点,以便在Spark作业因任何原因崩溃时可以重新启动它。下面是我们的spark过程的样子: Spark Streaming每5秒运行一次(幻灯片间隔),从Kafka读取数据 Kafka每秒大约接收80条消息 我们想要实现的是一个设置,在这个设置中,我们可以关闭spark流作业(

  • 当streaming Spark DStreams作为来自Kafka源的消费者时,可以检查Spark上下文,因此当应用程序崩溃(或受到的影响)时,应用程序可以从上下文检查点恢复。但如果应用程序“意外地部署了错误的逻辑”,您可能想要倒回到最后一个主题+分区+偏移量,以重播某个Kafka主题的分区偏移量位置的事件,这些位置在“错误逻辑”之前正常工作。当检查点生效时,流式应用程序如何被重绕到最后的“好点

  • 我正在使用spark structured streaming(2.2.1)来消费来自Kafka(0.10)的主题。 我的检查点位置设置在外部HDFS目录上。在某些情况下,我希望重新启动流式应用程序,从一开始就消费数据。然而,即使我从HDFS目录中删除所有检查点数据并重新提交jar,Spark仍然能够找到我上次使用的偏移量并从那里恢复。偏移量还在哪里?我怀疑与Kafka消费者ID有关。但是,我无法

  • 数据帧结构: 预期的数据帧结构: Code_1已尝试: 这也导致错误配对和重复。关于我应该调整什么以获得所需输出的任何建议。 我还尝试在第一条select语句中使用多次爆炸,这将引发错误。 Code_2尝试: 警告和错误: 是的,我问了同样的问题,这个问题被关闭为重复,指向另一个解决方案,这就是我在片段2中尝试的。它也不起作用。任何建议都会很有帮助。

  • 有没有关于为什么整个对象B需要序列化的想法? 关于“对象不可序列化”的异常: