cdc同步一张表 300W行 报了这个切分快照错误 有遇到的么?

Caused by: org.apache.flink.util.FlinkRuntimeException: Read split MySqlSnapshotSplit{tableId=wms_njvx.bms_toll_item, splitId='wms_njvx.bms_toll_item:1', splitKeyType=[bms_toll_item_id DECIMAL(20, 0) NOT NULL], splitStart=[85713], splitEnd=[171425], highWatermark=null} error due to org.apache.kafka.connect.errors.ConnectException: Snapshotting of table wms_njvx.bms_toll_item failed.

展开
收起
雪哥哥 2022-10-29 23:43:07 379 分享 版权
阿里云 AI 助理回答
  1. 问题描述: 用户在使用Flink作业时遇到错误,具体报错信息为:org.apache.flink.util.FlinkRuntimeException: Read split MySqlSnapshotSplit{...} error due to org.apache.kafka.connect.errors.ConnectException: Snapshotting of table wms_njvx.bms_toll_item failed. 这表明在对MySQL表wms_njvx.bms_toll_item进行快照读取时发生了异常。

  2. 问题分析

    • 可能原因一:如果该作业是作为CDC(Change Data Capture)的一部分运行,且涉及到MySQL数据源,此错误可能源于在尝试对表进行快照时的失败。这可能是由于并发读取问题、表结构变更或连接配置不当导致的。
    • 可能原因二:Kafka Connect组件在与MySQL交互过程中出现问题,比如无法正确地处理快照过程中的数据流,或者因为网络、权限等因素中断了操作。
  3. 解决方案

    • 检查并行度与server-id配置:确保对于每个并行读取MySQL的task,都配置了全局唯一的server-id,避免因server-id冲突导致的异常。
    • 验证数据库连接与权限:确认Flink作业具有足够的权限访问wms_njvx.bms_toll_item表,并且数据库连接信息正确无误。
    • 检查表结构与DDL变更:回顾近期是否有对wms_njvx.bms_toll_item表的结构进行了修改,如添加/删除列、更改列类型等操作,这些变更可能影响到快照的生成。如有变更,请根据变更情况调整Flink作业的相应配置。
    • 重试与日志分析:考虑增加重试逻辑以应对临时性故障,并仔细审查Flink和Kafka Connect的日志,寻找更具体的错误提示或异常堆栈,以便进一步定位问题。
    • 版本兼容性确认:确认使用的Flink、Kafka Connect及所有相关依赖的版本之间兼容,特别是当使用特定于供应商的插件或功能时。
  4. 注意事项

    • 备份数据:在进行任何结构调整或重新部署之前,确保已对涉及的数据库表进行备份,以防不测。
    • 监控与日志:持续监控作业运行状态,并配置详细日志记录,有助于快速识别和解决问题。
    • 资源与配置审阅:复查作业的资源配置,包括内存、CPU限制以及网络设置,确保没有资源不足的问题影响作业执行。

通过上述步骤,可以系统地诊断并解决快照读取失败的问题。如果问题依旧存在,建议深入查阅官方文档或联系技术支持获取更专业的帮助。

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

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

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理