Flink CDC调用stop的api接口,新启动的任务可以成功,但是从savepoit启动的任务,总是stop失败,会restarting。这是为啥,我用的是flink1.17.1?
Flink CDC的任务在调用stop的api接口后无法正常停止,可能的原因包括任务的状态未能正确更新或者某些资源未能成功释放。你提到新启动的任务可以正常停止,这表明API本身并无问题,问题可能出在从savepoint恢复的任务上。
对于这种情况,首先需要确认的是,你的Flink作业是否使用了正确的保存点(savepoint)。因为如果使用了一个与正在运行的任务状态不匹配的保存点进行恢复,可能会导致任务无法正常启动或停止。此外,也需要检查Flink作业的资源是否正确释放,例如内存、CPU等资源。
这个问题可能是由于Flink CDC连接器在savepoint恢复时,无法正确处理CDC源的状态导致的。你可以尝试以下方法解决这个问题:
确保你的Flink版本是最新的。目前最新版本是1.13.2,建议升级到最新版本。
尝试使用--allow-no-checkpoints
参数启动任务,这样可以避免因为checkpoint失败而导致的任务重启。但是这种方法可能会导致数据丢失,请谨慎使用。
如果问题仍然存在,可以考虑使用其他CDC连接器,如Debezium或Canal,它们可能对savepoint恢复有更好的支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。