Flink 任务调优案例分析

案例一

调优前任务

任务拓扑:

数据倾斜的算子:

数据并行度为380,独享槽,最大数据量为1亿,最小数据量为98万,数据倾斜达到100倍以上

调优后任务

任务拓扑:

数据倾斜算子调优后:

数据并行度为148,最大数据量为98万,最小数据量为72万,数据倾斜度不到1倍,几乎不存在。并行度降为原来的38%,并且为共享槽。

调优前资源使用量: 2002cpu,5016g内存,250TM,500slots;

调优后资源使用量: 400cpu,656g内存,80TM,160slots;

资源使用基本降为原来的1/5。

由于之前的数据倾斜严重导致checkpoint迟迟过不去,只能通过加资源和配置【Tolerable Failed Checkpoints 】来缓解数据倾斜的情况;调优以后数据倾斜的情况不存在了,checkpoint更容易对齐和成功,所以资源使用量大大降低。

调优手段

主要用到的调优手段

  1. 加盐,由于当前数据倾斜的算子存在一对多的情况(A:B=1:n)。所以通过在A stream 加盐前缀并扩大n倍的数据量下发数据到下游,比如:1#100,2#100,...,n#100;在B stream 加随机盐值下发数据到下游,比如:1#100,2#101,5#102,8#103,...,n#123。
  2. 通过测流来减少不必要数据量的计算
  3. 通过滚动窗口去重,减少数据下发,减轻下游的压力,例如:
java 复制代码
DataStream<Tuple2<String, String>> tumblingProcessingTimeWindows = loadProgressTableSkewStream
                .keyBy(v -> v.f0)
                .window(TumblingProcessingTimeWindows.of(Time.seconds(5)))  // 5秒钟滚动窗口
                .reduce((v1, v2) -> v2)
                .uid("tumblingProcessingTimeWindows")
                .name("tumblingProcessingTimeWindows");
相关推荐
运维行者_32 分钟前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
QiLinkOS1 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
超级数据查看器1 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天2 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
Data-Miner4 小时前
智慧监狱大数据方案,颠覆传统监管新模式!
大数据
RFID科技的魅力6 小时前
RFID资产管理系统选型避坑指南:从需求梳理到落地验证
大数据·人工智能·物联网·rfid
小猴子下山1237 小时前
2026年无锡细胞存储市场格局观察:四家企业的传承脉络与业务分野
大数据·人工智能·精选
2503_931712488 小时前
中小学课桌椅/报告厅座椅/大学教室桌椅/校园课桌椅/高校阶梯教室排椅公司优选
大数据
蓝速科技8 小时前
蓝速科技三色灯光会议预约门牌深度评测
大数据·人工智能·科技
2601_962846498 小时前
计算机毕业设计之基于大数据加护的国产美妆行业发展状况研究
大数据·人工智能·深度学习·信息可视化·课程设计