可以讲讲Flink的优化吗,具体以项目中某个例子举例一下?

优化的话:可以参考下面几点

  1. GC的配置
    (1)调整老年代与新生代的比值 或者 更换垃圾收集器
    (2)增加JVM内存
  2. 数据倾斜
    (1)需要重新设计key,以更小粒度的key使得task大小合理化。

(2)当分区导致数据倾斜时,需要考虑优化分区。避免非并行度操作,有些对DataStream的操作会导致无法并行,例如WindowAll。

(3)调用rebalance操作,使数据分区均匀。

(4)自定义分区:使用一个用户自定义的Partitioner对每一个元素选择目标task,由于用户对自己的数据更加熟悉,可以按照某个特征进行分区,从而优化任务执行。

  1. checkpoint

(1)频率不宜过高

(2)超时时间不要过长,一般在频率一半

(3)使用异步

4.其他配置

(1)配置JobManager内存

(2)配置TaskManager个数

(3)配置TaskManager Slot数

5.其他

(1)背压的时候大家往往忽略了数据的序列化和反序列化,过程所造成的性能问题。

(2) 一些数据结构 ,比如 HashMap 和 HashSet 这种 key 需要经过 hash 计算的数据结构,在数据量大的时候使用 keyby 进行操作, 造成的性能影响是非常大的。

(3) 如果我们的下游是 MySQL,HBase这种,我们都会进行一个批处理的操作,就是让数据存储到一个 buffer 里面,在达到某些条件的时候再进行发送,这样做的目的就是减少和外部系统的交互,降低网络开销的成本。

(4) 频繁GC ,无论是 CMS 也好,G1也好,在进行 GC 的时候,都会停止整个作业的运行,GC 时间较长还会导致 JobManager 和 TaskManager 没有办法准时发送心跳,此时 JobManager 就会认为此 TaskManager 失联,它就会另外开启一个新的 TaskManager。

  1. 场景

产生背压的时候如果定位下游计算不过来,导致上游挤压严重,这个时候想着怎么去增加并行度也好或者利用多线程也好,目的就是增加计算能力。如果多线程计算,这个时候更多关注cpu核数,来分配更多的时间片,提高计算能力。

相关推荐
2601_9648402716 小时前
4G云门禁普惠化技术实践:基于边缘计算破解成本、隐私、部署三大行业瓶颈
大数据·人工智能·边缘计算
具身智能进化论16 小时前
国产协作机器人品牌如何选择,企业长期使用更看重什么
大数据·人工智能·机器人·工厂方法模式
IvorySQL17 小时前
PostgreSQL 日报|PG18.5 回归测试崩溃问题(8 月 12 日)
大数据·数据库·人工智能·postgresql
明航咨询_贾老师17 小时前
《软件工程造价师报考全攻略:报名条件、考试流程与通关要点》
大数据·软件工程造价师
2503_9317124818 小时前
国内广东乐运科技及行业头部AI数字化转型解决方案源头
大数据
学着改变27518 小时前
手持式超声波流量计为何首选行澳科技?便携巡检与外夹计量的性能标杆
大数据·网络·人工智能·科技·产品运营·量子计算
xushichang123_19 小时前
企业想统一接入 Claude、GPT、DeepSeek、Qwen 等模型,应该选什么云上 AI 平台架构?
大数据
赟爸20 小时前
直播切片素材杂乱不好复用,易元AI要怎么处理
大数据·人工智能·python
yunlaodacom20 小时前
阿里云国际站注册:性能损耗 < 1%!基于 eBPF 的服务器异常预测实战与调优指南
大数据·服务器·阿里云
大大大大晴天21 小时前
从 Kafka 到报表:Flink、CDC 与 StarRocks 的实时入仓链路
大数据