Flink参数设置和性能优化

一、参数配置


1、运行时参数:
异步查询关联:缓存容量和异步超时时间
微批处理:批量访问或者更新一次状态、减少对状态的访问次数和时间,例如积攒100条或者1分钟后再访问 (只要table.exec.mini-batch.allow-latency和table.exec.mini-batch.size两个参数)
键值状态保留时长:例如distinct、groupby、关联、topn等运算会用到状态,通过设置无界流中state.ttl,设置如果状态一段时间没没有被访问或者更新,则会删除该状态
算子并行度-空闲数据源闲置检测(如果一个source没有新数据产生,该subTask就不会参与waermark的对齐),保证时间窗口可以正常推进
2、优化器参数:
帮助生产更优的执行计划
2阶段聚合,上游算子将数据传递给下游前,将数据聚合,减少网络和数据倾斜的可能
去重计算的分桶聚合(例如groupby分钟去重,如果一个key数据500w,另一个key数据1w)导致数据倾斜,开启分桶聚合、分桶个数
3、表参数

二、性能调优


0、状态访问性能差、大状态以及数据倾斜这3种场景提供的微批处理、去重场景BitMap复用、两阶段聚合以及去重计算的分桶聚合的优化原理。
1、微批:而在GroupAggFunction处理每一条输入数据时,会经历三步:第一步,从状态中读取累加器数据;第二步,执行累计操作或者回撤操作,并得到新的累加器数据;第三步,将累加器的数据写回状态、相同的key只需要访问一次状态
2、去重场景:bitmap去重复用优化、通过Filter子句来实现去重场景BitMap复用、
3、2阶段聚合(适合计数、累加的聚合场景):热点数据倾斜,先聚合再传递给下游。本地先进行一次聚合结果、再传递给下游
4、分桶聚合-适用于去重聚合场景例如count(distinct userId),将数据的key先打散到多个桶进行聚合,再对分桶中的数据最后聚合

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值