Flink中通过jdbc的方式把MySQL的数据通过flink 同步到Doris中 在这个启动命令下,输出端直接OOM了,有遇到过的大佬吗 /home/flink/flink-1.14.6/bin/flink run-application --target yarn-application -m yarn-cluster - -Dtaskmanager.numberOfTaskSlots=1 -Djobmanager.memory.process.size=5G -Dtaskmanager.memory.process.size=1G -Dparallelism.default=2 -Dtaskmanager.memory.managed.size=0 ?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到Flink作业在同步MySQL数据到Doris时输出端(sink端)发生OOM(Out Of Memory)问题,通常意味着数据处理过程中内存分配不足或数据处理逻辑存在内存泄露。根据您提供的启动命令,这里有几个可能的优化方向和排查思路:
调整TaskManager内存配置:
taskmanager.memory.process.size=1G
,这包括了JVM堆内存和其他非堆内存(比如直接内存)。如果sink操作需要大量内存来缓冲数据(例如批量写入),可能需要增加这个值。taskmanager.memory.managed.size=0
表示禁用了Flink的托管内存。对于某些场景,启用并适当设置托管内存可以帮助更好地管理内存使用,尤其是对于状态较大的应用。检查并优化sink配置:
batchSize
、flushIntervalMs
等参数来控制数据批处理的大小和频率,减少内存中的数据积累量。监控与日志分析:
YARN资源配置:
代码层面的优化:
测试与调优:
综上所述,解决这个问题可能需要从多个角度综合考虑和调试。希望这些建议能帮助您找到问题所在并有效解决。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。