有遇到过吗 flink版本1.17.1 cdc 2.4?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用 Flink 1.17.1 和 CDC 2.4 的过程中,可能会遇到一些已知问题或需要优化的场景。以下是根据知识库资料整理的相关信息和解决方案:
在 Flink 1.17.1 版本中,MySQL CDC 在处理大量 Binlog 数据时可能会出现内存溢出(OOM)的问题。此问题已在后续版本中修复,修复后会抛出异常并触发作业 Failover,而不是静默重试。
taskmanager.memory.process.size: 4g
在 Flink 1.17.1 中,MySQL CDC 对 Tinyint(1) 类型的映射可能存在不一致的情况。VVR 8.0.4 版本新增了对 Tinyint(1) 和 Boolean 类型的映射支持,确保数据一致性。
在 MySQL Catalog 中,可以通过以下选项控制 Tinyint(1) 和 Boolean 类型的映射:
'tinyint-as-boolean' = 'true' -- 将 Tinyint(1) 映射为 BOOLEAN
在 Flink 1.17.1 中,默认情况下,CDC 作业失败后会尝试重启。如果希望作业在多次失败后彻底退出,可以通过修改 Flink 配置文件指定重启策略。
restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 2
restart-strategy.fixed-delay.delay: 10s
上述配置表示:最多尝试重启两次,每次重启前等待 10 秒。如果两次重启均失败,作业将彻底退出。
在某些场景下,MySQL CDC 可能只读取全量数据而不读取增量数据。常见原因包括: - 使用的是 RDS MySQL 5.6 备库或只读实例,这些实例不会向日志文件写入数据。 - 全量阶段读取时间过长,导致最后一个分片数据量过大,出现 OOM 问题。 - Checkpoint 间隔时间设置不合理,导致作业卡住。
execution.checkpointing.interval: 60000 -- 每 60 秒触发一次 Checkpoint
在 Flink 1.17.1 和 CDC 2.4 的使用中,还存在以下已知问题,并已在后续版本中修复: - Paimon 部分更新冲突:多个流写入同一表时可能发生冲突,已修复。 - GeminiStateBackend OOM 异常:优化了 OOM 异常的处理逻辑,现在会抛出异常并触发 Failover。 - StarRocks 连接器错误:修复了 java.lang.NoClassDefFoundError: StringUtils 错误。
如果您正在使用 Flink 1.17.1 和 CDC 2.4,建议关注以下几点: 1. 升级引擎版本:优先升级到 VVR 8.0.4 或更高版本,以获得最新的功能和修复。 2. 优化配置:根据业务需求调整 Checkpoint、JVM 内存等参数。 3. 监控与诊断:利用 Flink 提供的诊断工具(如日志分页、慢节点定位等)快速定位问题。
如果仍有疑问或需要进一步帮助,请提交工单联系技术支持团队。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。