各位大神谁碰到过上面这个问题?

Flink1.13.6 standalone Flink CDC1.4

Failed due to error: Aborting snapshot due to error when last running 'SELECT * FROM all_media_resource.media_resource': Streaming result set com.mysql.cj.protocol.a.result.ResultsetRowsStreaming@3b3801ac is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

展开
收起
雪哥哥 2022-11-08 18:24:41 678 分享 版权
阿里云 AI 助理回答
  1. 问题描述: 您在使用Flink 1.13.6 standalone搭配Flink CDC 1.4时,遇到了作业失败的问题。错误信息指出,在执行全量数据抓取(SELECT * FROM all_media_resource.media_resource)时,由于存在活跃的流式结果集未关闭,导致快照创建失败。

  2. 原因分析

    • 活跃的流式结果集:该错误表明在尝试进行新的查询操作之前,前一个查询产生的流式结果集还未被正确关闭。Flink CDC在读取MySQL全量数据时,如果结果集没有被适当地管理与关闭,会导致后续查询无法执行。
  3. 解决步骤

    • 步骤1:检查并更新Flink CDC配置,确保在读取全量数据时能够妥善处理结果集。虽然直接修改Flink CDC插件内部逻辑较为复杂,但可以通过调整作业参数来优化资源管理和结果集处理方式。

    • 步骤2:考虑增加或优化Flink作业的资源配置,比如内存和CPU,以减少因资源紧张导致的结果集处理不当。这可以通过调整Flink的taskmanager.memory.process.size等配置实现。

    • 步骤3:确认您的Flink CDC连接器版本是否兼容Flink 1.13.6,并查看是否有已知的bug或限制可能导致此问题。考虑升级至更稳定或已修复相关问题的版本。

    • 步骤4:在应用代码层面,如果可能,确保在每次查询后显式调用结果集的.close()方法来关闭流式结果集,尽管通常Flink CDC应自动管理这一过程。这一步骤更多是作为排查方向,实际操作中Flink CDC组件应自行处理这类资源释放。

  4. 注意事项

    • 资源监控:定期检查作业运行时的资源使用情况,避免资源不足引发异常。
    • 版本兼容性:在升级或选择组件版本时,务必确认其与Flink核心版本的兼容性。
    • 测试环境验证:在生产环境部署前,先在测试环境中验证配置更改和版本升级的效果。
  5. 总结: 解决此问题的关键在于确保流式结果集得到恰当管理与关闭,这可能涉及调整Flink作业配置、优化资源分配,以及确认使用的Flink CDC版本无已知问题。通过上述步骤,可以有效应对因活跃结果集未关闭导致的作业失败问题。

请注意,以上建议基于通用知识库资料提供,具体实施时需结合您实际的系统环境和配置细节进行调整。

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