咨询一下,通过FlinkCDC同步MySQL数据到Hudi表的作业,在snapshot同步完,开始读取binlog之后,checkpoint耗时变长(5分钟左右)同时开始出现这样的异常,请问是什么原因导致的呢?有哪些排查方向吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
通过Flink CDC同步MySQL数据到Hudi表的作业,在完成Snapshot阶段后进入Binlog读取阶段时,出现Checkpoint耗时变长(5分钟左右)并伴随异常的情况,可能由以下几个原因导致。以下是详细的排查方向和解决方案:
LocalGroupAggregate
),可以调整table.exec.mini-batch.size
参数,减少缓存数据量。SHOW FULL BINARY LOGS;
execution.checkpointing.interval
和execution.checkpointing.timeout
。10s
或30s
,以减少单次Checkpoint的数据量。python.fn-execution.bundle.size=10000
python.fn-execution.bundle.time=500
10s
或30s
。debezium.min.row.count.to.stream.results
值,可能导致全量读取阶段使用分批读取模式,增加了内存消耗和处理时间。debezium.min.row.count.to.stream.results
。debezium.min.row.count.to.stream.results
值,例如设置为1000
或更小。SET 'table.optimizer.source-merge.enabled' = 'true';
根据上述分析,建议按照以下步骤进行排查和优化: 1. 检查Flink Web UI中的反压和Checkpoint指标,确认是否存在性能瓶颈。 2. 调整Checkpoint配置,缩短间隔时间并优化Python UDF缓存参数。 3. 确认MySQL Binlog文件的可用性,调整保留策略以避免日志被清理。 4. 检查MySQL源表的WITH参数配置,优化全量读取和增量读取的性能。 5. 如果涉及多张MySQL源表,开启Source复用功能以减少数据库压力。
通过以上措施,可以有效解决Checkpoint耗时变长的问题,并提升Flink CDC作业的稳定性。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。