flink 消费 sls 写入 paimon表 报错,怎么解决?
遇到错误java.lang.RuntimeException: File deletion conflicts detected! Give up committing
,这通常发生在Flink作业尝试写入Paimon表时,因文件删除冲突导致提交失败。根据提供的知识库资料,这个问题可能由以下几个原因引起,并对应有不同的解决策略:
多个作业同时写入同一张Paimon表的同一分区:
从一个已存在的老状态恢复作业:
在同一个作业中使用多条INSERT语句写入同一张Paimon表:
UNION ALL
语句一次性写入Paimon表。Global Committer节点或Append Scalable表的Compaction Coordinator节点并发数大于1:
综上所述,解决此问题的关键在于确保写入操作的唯一性和一致性,避免并发冲突,并正确管理作业的启动与恢复状态。根据具体情况采取相应的解决措施即可缓解或消除该错误
遇到错误提示java.lang.RuntimeException: File deletion conflicts detected! Give up committing.
,表明在使用Flink从SLS消费数据并尝试写入Paimon表的过程中,出现了文件删除冲突。这可能是由几个原因造成的,以下是解决步骤和建议:
table.exec.sink.upsert-materialize=false
来禁用它Sink materializer算子原本用于解决流作业中级联JOIN导致的数据乱序问题。然而,在写入Paimon表的作业时,该算子不仅会引入额外的开销,在使用Aggregation数据合并机制时还可能导致计算结果错误。因此,写入Paimon表的作业中不能使用Sink materializer算子。
您可以通过SET语句或运行参数配置将table.exec.sink.upsert-materialize参数设为false,来关闭Sink materializer算子。
报错信息显示了一个Java运行时异常,具体是“File deletion conflicts detected! Give up committing.”这表明在提交过程中检测到了文件删除冲突,导致提交失败。该错误表示在提交操作期间发现了文件删除冲突。为了修复这个问题,您应该首先确定冲突的原因,然后采取相应的措施。
,错误提示是java.lang.RuntimeException: File deletion conflicts detected! Give up committing.,这表明在Flink写入Paimon表时检测到文件删除冲突
如果作业受到背压,可能会导致过多的快照等待提交,并且在提交过程中发生异常(很可能是由于检查点超时)。您可以参考Paimon文档来提高写入性能
参考文档:https://paimon.apache.org/docs/master/maintenance/write-performance/
按照图中异常信息提示来解决即可。
异常信息
2024-05-27 16:17:31
运行时异常:检测到文件删除冲突!放弃提交。
提交期间的冲突是正常的,这个失败是为了解决冲突。
冲突主要由以下情况引起:
1. 你的作业正在遭受背压。有太多等待提交的快照,并且在提交过程中发生了异常(最有可能是由于检查点超时)。查看https://paimon.apache.org/docs/master/maintenance/write-performance/以了解如何提高写入性能。
2. 多个作业正在同时写入同一个分区,或者你使用STATEMENT SET执行了多个INSERT语句到同一个Paimon表。
你可能会在下面看到不同的基础提交用户和当前提交用户。
你可以使用https://paimon.apache.org/docs/master/maintenance/dedicated-compaction#dedicated-compaction-job来支持多个写入。
3. 你正在从一个旧的保存点恢复,或者你正在从一个保存点创建多个作业。
在这种场景下,作业将持续失败以保护元数据不被破坏。
你可以从最新的保存点恢复,或者你可以将表回滚到与旧保存点相对应的快照。
基础提交用户是:e4e6eb0f-c843-47c9-b577-627f68b34751;当前提交用户是:a2671aed-e479-44e8-b44a-8df674534479
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。