我们在 Spark 2.2 中使用 Spark 结构化流。
在某些时候,流崩溃,当它开始时,它尝试从检查点读取并失败:
java.lang.IllegalStateException: Error reading delta file /XYZ/Checkpoint/myApp_V13-enrichment/state/0/7/132792.delta of HDFSStateStoreProvider[id = (op=0, part=7), dir = /XYZ/Checkpoint/myApp_V13/state/0/7]: /myApp/Checkpoint/myApp-V13/state/0/7/132792.delta does not exist
Caused by: java.io.FileNotFoundException: File does not exist: /mcspace/myApp/Checkpoint/myApp/state/0/7/132792.delta
两个错误被打开:
-
无法从检查点位置恢复 Spark 结构化流作业 https://issues.apache.org/jira/browse/SPARK-22262
-
检查点到 HDFS 时出错 https://issues.apache.org/jira/browse/SPARK-20894
看来这个bug即使在spark 2.3中也没有得到解决
我们寻找一种方法来找出丢失的增量文件,以便在流应用程序启动时搜索以前的增量文件。
我们发现的唯一绕过是为第二篇文章写的评论:删除检查点位置以及受影响的 writeStream 输出文件夹中的 _spark_metadata 文件夹有助于解决该问题
有没有办法让流应用程序从最后一个存在的增量文件开始?或者是删除检查点中所有增量文件的唯一方法?因为这会导致该目录中所有增量文件的数据丢失
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)