有遇到过吗 flink版本1.17.1 cdc 2.4?

有遇到过吗 flink版本1.17.1 cdc 2.4?image.png

展开
收起
真的很搞笑 2023-10-03 07:29:03 140 分享 版权
阿里云 AI 助理回答

在使用 Flink 1.17.1CDC 2.4 的过程中,可能会遇到一些已知问题或需要优化的场景。以下是根据知识库资料整理的相关信息和解决方案:


1. MySQL CDC 在解析大量 Binlog 时可能发生 OOM

在 Flink 1.17.1 版本中,MySQL CDC 在处理大量 Binlog 数据时可能会出现内存溢出(OOM)的问题。此问题已在后续版本中修复,修复后会抛出异常并触发作业 Failover,而不是静默重试。

解决方案:

  • 升级引擎版本:建议将 Flink 引擎升级到最新版本(如 VVR 8.0.4 或更高),以获得修复后的功能。
  • 调整 JVM 参数:如果无法立即升级,可以尝试增加 TaskManager 的内存配置,例如:
    taskmanager.memory.process.size: 4g
    
  • 优化 Binlog 消费:通过减少全量阶段的数据量或增加并发来缓解压力。

2. MySQL CDC 对 Tinyint(1) 类型的支持

在 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

3. Flink CDC 作业失败后的重启策略

在 Flink 1.17.1 中,默认情况下,CDC 作业失败后会尝试重启。如果希望作业在多次失败后彻底退出,可以通过修改 Flink 配置文件指定重启策略。

配置示例:

restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 2
restart-strategy.fixed-delay.delay: 10s

上述配置表示:最多尝试重启两次,每次重启前等待 10 秒。如果两次重启均失败,作业将彻底退出。


4. MySQL CDC 全量读取后不读增量数据

在某些场景下,MySQL CDC 可能只读取全量数据而不读取增量数据。常见原因包括: - 使用的是 RDS MySQL 5.6 备库或只读实例,这些实例不会向日志文件写入数据。 - 全量阶段读取时间过长,导致最后一个分片数据量过大,出现 OOM 问题。 - Checkpoint 间隔时间设置不合理,导致作业卡住。

解决方案:

  • 使用可写实例:建议使用主库或升级到更高版本的 RDS MySQL。
  • 增加并发:提高 MySQL Source 端的并发度,加快全量读取速度。
  • 调整 Checkpoint 配置:根据业务需求设置合理的 Checkpoint 间隔时间,例如:
    execution.checkpointing.interval: 60000 -- 每 60 秒触发一次 Checkpoint
    

5. 其他已知问题及修复

在 Flink 1.17.1 和 CDC 2.4 的使用中,还存在以下已知问题,并已在后续版本中修复: - Paimon 部分更新冲突:多个流写入同一表时可能发生冲突,已修复。 - GeminiStateBackend OOM 异常:优化了 OOM 异常的处理逻辑,现在会抛出异常并触发 Failover。 - StarRocks 连接器错误:修复了 java.lang.NoClassDefFoundError: StringUtils 错误。


总结与建议

如果您正在使用 Flink 1.17.1CDC 2.4,建议关注以下几点: 1. 升级引擎版本:优先升级到 VVR 8.0.4 或更高版本,以获得最新的功能和修复。 2. 优化配置:根据业务需求调整 Checkpoint、JVM 内存等参数。 3. 监控与诊断:利用 Flink 提供的诊断工具(如日志分页、慢节点定位等)快速定位问题。

如果仍有疑问或需要进一步帮助,请提交工单联系技术支持团队。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理