Flink CDC里规划设计 基于yarn-session,批量提交20-30个基于Mysql cdc的任务;
实践现象:
jobmanager内存充足和taskManager的cpu和内存充足;
比如jobmanager给了12G内存;
但是打开 flink web ui 很卡,api 也基本没法使用,
请教一下大家:该场景使用yarn-seesion 可以吗?yarn-session模式,我们通过 -D yarn.appmaster.vcores 4 想增加jobmanager的cpu,但是效果不明显;然后有任务进入restarting 状态后,整个 web ui 没法看,卡死,如果任务正常运行,增量阶段,还是正常的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的场景,Flink CDC任务基于Yarn Session模式批量提交20-30个MySQL CDC任务时,尽管JobManager和TaskManager的资源(内存、CPU)配置充足,但仍然出现了以下问题:
结合知识库中的相关资料,以下是针对该问题的详细分析与解决方案。
Yarn Session模式适用于需要共享资源池的场景,尤其是多个任务共享同一个集群资源的情况。然而,在您的场景中,批量提交20-30个MySQL CDC任务可能会导致以下问题:
因此,Yarn Session模式在高并发任务场景下可能不是最佳选择,尤其是在任务数量较多且频繁重启的情况下。
尽管您为JobManager分配了12GB内存,但JobManager的性能不仅取决于内存,还受到CPU核心数的影响。通过-D yarn.appmaster.vcores 4
增加JobManager的CPU核心数后,效果不明显的原因可能是:
虽然TaskManager的CPU和内存资源充足,但如果单个TaskManager的资源过大,可能会导致以下问题:
Flink Web UI的性能直接受JobManager的负载影响。当JobManager处理大量任务的状态更新时,Web UI的响应速度会显著下降。此外,Web UI本身的设计并不适合高并发任务场景,尤其是在任务频繁重启时。
为了缓解JobManager的压力,可以尝试以下优化措施:
yarn.appmaster.vcores
从4增加到更高的值(如8或16),以提升JobManager的计算能力。合理配置TaskManager的资源,避免单个TaskManager资源过大或过小:
通过以下方式减少JobManager的元数据管理压力:
scan.incremental.snapshot.chunk.size
参数,减少每个分片的数据量,从而降低JobManager的内存占用。如果Yarn Session模式无法满足需求,可以考虑使用Per-Job模式。Per-Job模式为每个任务创建独立的Flink集群,能够有效隔离任务之间的资源竞争,避免JobManager的负载过高。
根据知识库中的信息,VVR 8.0.7及以上版本对MySQL CDC连接器进行了多项优化,包括支持Source复用、提升大容量表的读取性能等。建议升级到最新版本以获得更好的性能和稳定性。
在当前场景下,Yarn Session模式可能不适合批量提交20-30个MySQL CDC任务。建议通过以下方式优化:
通过以上措施,可以有效缓解JobManager的压力,提升系统的稳定性和Web UI的响应速度。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。