请问flinkcdc中关于oracle cdc 大表任务执行完全量阶段之后的资源回收的问题咋解决,第一次全量+增量阶段因为表数据量特别多所以分配的并行数和taskmanger内存比较大,后续增量同步我理解不用这么高的内存了,想把资源空余出来给别的任务用,但是改低内存配置和并行数后任务又重新执行全量阶段的split chunk了,这个怎么解决?
在 Flink CDC 中,当 Oracle CDC 任务执行完全量阶段后,您需要进行资源回收以避免资源泄漏和浪费。以下是一些建议:
关闭 CDC 任务
在完全量任务执行完成后,您可以关闭 CDC 任务以释放相关资源。您可以通过调用 close() 方法关闭 Flink CDC 任务,例如:
Copy
jobExecutionResult.getJobClient().stopWithSavepoint(true, savepointDirectory);
在这里,jobExecutionResult 是 StreamExecutionEnvironment.execute() 方法的返回结果,savepointDirectory 是保存点目录的路径。
关闭数据库连接
在关闭 CDC 任务之前,您需要确保所有数据库连接都已关闭。如果您使用的是 Flink CDC 提供的 OracleCdcSource,则可以在 close() 方法中关闭数据库连接,例如:
Copy
public void close() throws Exception {
super.close();
if (this.oracleCdcReader != null) {
this.oracleCdcReader.close();
}
}
在这里,oracleCdcReader 是 OracleCdcReader 类的一个实例,它负责与 Oracle 数据库进行通信。
清理临时文件和目录
在执行完 CDC 任务后,Flink CDC 可能会在本地磁盘上创建一些临时文件和目录。您可以在关闭 CDC 任务后清理这些文件和目录,例如:
Copy
FileUtils.deleteDirectory(new File(tempDirectory));
在这里,tempDire
"改低内存配置和并行数后,你做了savepoint了吗?没有就停止cdc任务之前,你需要savepoint,然后你才可以降低配置,重新启动任务从savepoint启动。
https://ververica.github.io/flink-cdc-connectors/master/content/connectors/mysql-cdc.html,在动态加表这里,一样的处理办法。此回答整理至钉群“Flink CDC 社区”。"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。