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.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 您在使用Flink 1.13.6 standalone搭配Flink CDC 1.4时,遇到了作业失败的问题。错误信息指出,在执行全量数据抓取(SELECT * FROM all_media_resource.media_resource
)时,由于存在活跃的流式结果集未关闭,导致快照创建失败。
原因分析:
解决步骤:
步骤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组件应自行处理这类资源释放。
注意事项:
总结: 解决此问题的关键在于确保流式结果集得到恰当管理与关闭,这可能涉及调整Flink作业配置、优化资源分配,以及确认使用的Flink CDC版本无已知问题。通过上述步骤,可以有效应对因活跃结果集未关闭导致的作业失败问题。
请注意,以上建议基于通用知识库资料提供,具体实施时需结合您实际的系统环境和配置细节进行调整。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。