新增的表在正常扫描若干chunk以后就卡住了为什么?

flink1.14.4,cdc 2.2.1 , mysql 8.0;任务从savepoint恢复时使用scan_newly_add_tables功能。新增的表在正常扫描若干chunk以后就卡住了,既不同步新增表的全量数据,也不再监听增量数据。jobManger和taskManager都没有异常日志。

展开
收起
游客6vdkhpqtie2h2 2022-09-02 11:49:41 360 分享 版权
阿里云 AI 助理回答
  1. 问题描述: 用户在使用Flink 1.14.4、MySQL CDC Connector 2.2.1以及MySQL 8.0的环境下,从savepoint恢复任务时启用了scan_newly_add_tables功能。然而,新增的表在被正常扫描一段时间后停止同步,既不继续全量数据的加载,也不再捕获增量变更数据。尽管如此,JobManager和TaskManager均未显示异常日志。

  2. 背景信息

    • Flink Savepoint:Savepoint是Flink作业执行状态的一致性快照,用于故障恢复或更新作业配置。
    • scan_newly_add_tables:此功能允许Flink CDC Source在重启后自动发现并开始读取作业启动后新增的表的全量及增量数据。
    • MySQL CDC Connector:用于捕获MySQL数据库的变更数据(通过Binlog),支持全量数据拉取及后续的增量监听。
  3. 可能的原因与解决方案

    • 原因1:Checkpoint间隔时间设置不当 全量读到增量读切换时,若Checkpoint间隔过长,可能导致长时间无法进入增量阶段。请检查并调整Checkpoint间隔至合理时间,以确保全量数据写入下游后能及时切换至增量模式。

    • 原因2:并发数与server-id配置不匹配 确认作业并发数不超过配置的server-id范围,并且每个并发有唯一的server-id。如果新增表的读取因资源分配或并发控制问题卡住,应调整并发数设置,并确保server-id配置正确无重叠。

    • 原因3:MySQL实例限制 若使用的是RDS MySQL 5.6只读实例,其binlog可能不含数据,导致无法读取增量。确认使用的MySQL版本和实例类型是否支持所需的CDC功能。

    • 原因4:启动模式配置 检查scan.startup.mode配置,确认是否正确设置了启动模式以适应全量数据及增量数据的处理需求。对于已存在数据表的增量同步,应确保配置为默认的initial或其他适合增量读取的模式。

    • 排查无声错误: 虽然JobManager和TaskManager没有直接报错,但建议检查Source Task的日志详细信息,可能存在更细致的警告或提示信息,如网络延迟、连接超时等,这些都可能是导致任务暂停的原因。

  4. 操作步骤

    • 步骤1:检查并调整Checkpoint配置,确保快速完成全量数据同步后的切换。
    • 步骤2:验证并调整server-id范围与作业并发数设置,确保二者匹配且符合要求。
    • 步骤3:确认MySQL实例版本和类型,必要时升级或更换实例。
    • 步骤4:检查并确认scan.startup.mode配置正确,根据实际需要进行调整。
    • 步骤5:深入分析TaskManager日志,查找潜在的非致命错误或警告信息。
  5. 注意事项

    • 资源监控:持续监控作业资源使用情况,确保资源充足且分配合理。
    • 版本兼容性:确认所用Flink、MySQL CDC Connector与MySQL版本间的兼容性,避免因版本不匹配引起的问题。
  6. 总结: 问题可能源于Checkpoint配置、并发控制、MySQL实例限制或启动模式设置不当。通过上述步骤逐一排查并调整,可以定位并解决新增表同步停滞的问题。同时,深入分析日志文件对识别隐藏问题至关重要。

有帮助
无帮助
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助理