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");
相关推荐
ACP广源盛1392462567330 分钟前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
微三云-张梅2 小时前
东莞企业做GEO:AI信任体系的三个建设层级
大数据·人工智能·微三云geo·东莞系统开发·东莞geo
starzy19902 小时前
Spark 核心之 Spark-SortShuffle 原理深度剖析
大数据·spark
美狐美颜sdk4 小时前
直播APP开发技术架构解析:从音视频流到第三方美颜SDK接入的完整方案
大数据·人工智能·音视频·美颜sdk·美颜api
Capricorn19885 小时前
知芽研究问题看板无法推进?从孵化区到笔记的机制排查指南
大数据·论文阅读·人工智能·笔记·学习方法·论文笔记
凡科网小帆5 小时前
2026小程序商城平台哪家强,小程序商城平台选型怎么做
大数据·小程序·小程序商城平台
睿本云5 小时前
从“有数据”到“会用数据”,一次标签体系的升级能带来的改变
大数据·人工智能
牛奶咖啡135 小时前
大数据Hadoop运维应用实践——Hadoop平台常见问题与故障汇总、系统调优、网络规划与硬件存储选型
大数据·hadoop·hadoop集群操作系统调优·hadoop集群运维问题汇总·hadoop集群硬件规划·大数据平台网络规划·大数据平台硬件存储选型
MEIXIFU16 小时前
便利店实际经营面积怎么选最合适
大数据·人工智能·物联网·生活·迭代加深
观远数据6 小时前
AI+BI时代的数据合规三重门:传输、存储、消费如何一体化管控
大数据·数据分析