Flink优化——资源优化(一)

目录

资源配置优化

内存设置 (1CPU 配置 4G 内存)

并行度设置

最优并行度计算

Source 端并行度的配置

Transform 端并行度的配置

Keyby 之前的算子

Keyby 之后的算子 (KeyGroup 最小值为128)

Sink 端并行度的配置

RocksDB 大状态调优

设置本地 RocksDB 多目录:

Checkpoint 设置


资源配置优化

    Flink 性能调优的第一步,就是为任务分配合适的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的心更难调优策略。

    提交方式主要 yarn-per-job ,资源的分配在使用脚本提交 Flink 任务时进行指定。

内存设置 (1CPU 配置 4G 内存)

    生产资源配置:

bin/flink run \
-t yarn-per-job \
-d \
-p 5 \ 指定并行度
-Dyarn.application.queue=test \ 指定 yarn 队列
-Djobmanager.memory.process.size=2048mb \ JM2~4G足够
-Dtaskmanager.memory.process.size=6144mb \ 单个TM2~8G足够
-Dtaskmanager.numberOfTaskSlots=2 \ 与容器核数 1 core:1 slot或1 core:2 slot
-c com.xxxx.classApp
/opt/..../ jar

Flink 是实时流处理,关键在于资源情况能不能抗住高峰时期每秒的数据量,通常用QPS/TPS来描述数据情况。

并行度设置

最优并行度计算

开发完成后,先进行压测,任务并行度给 10 以下,测试单个并行度的处理上限。然后 总 QPS / 单并行度的处理能力 = 并行度

不能只从 QPS 去得出并行度,因为有些字段少、逻辑简单的任务,单并行度一秒处理几万条数据。而有些数据字段多,处理逻辑复杂,单并行度一秒只能处理 1000 条数据。

最好根据高峰期的 QPS 压测, 并行度*1.2倍,富余一些资源。

Source 端并行度的配置

数据源端是 Kafka, Source 的并行度设置为 Kafka 对应 Topic 的分区数

如果已经等于 Kafka 的分区数,消费速度仍跟不上数据生产速度,考虑下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值