Flink数据倾斜?到底啥意思?

大数据不怕数据大,分布式架构数据倾斜才是影响作业的罪魁祸首

数据倾斜是分布式计算中常见的问题,会严重影响作业性能。

数据倾斜场景

场景一:上游分区数据倾斜

上游 Kafka消息队列 各分区数据存在不均匀,在没有 keyBy 操作的情况下,有的分区数据量大,有的小。

场景二:keyBy 分区倾斜

在一些业务场景下,需要对某个字段进行 keyBy

数据倾斜影响

对于分布式的计算系统来说,不怕数据量大,就怕数据倾斜。因为分布式计算是将大数据集合拆成若干个小的数据集,在多个计算实例上执行计算逻辑,最终汇总计算结果,如果存在热点数据,导致某一个计算实例分配到的数据量远大于其他计算实例,那么整体的计算瓶颈就集中在该单节点上,类似于"木桶原理",最短的木块决定这个桶能装多少水。

(1)慢节点问题

数据集中在某些分区上(Subtask),导致数据严重不平衡,数据量大的节点处理速度慢,引发背压,checkpoint 连续失败等等。

(2)GC 频繁

过多的数据集中在某些 JVM(TaskManager),使得 JVM 的内存资源短缺,导致频繁 GC,导致延迟增大,吞吐下降。

(3)系统崩溃

严重情况下,单节点过大的数据可能突破该节点内存上限导致节点被kill,或者过长的 GC 导致 TaskManager 失联,可能影响系统内部崩溃。

如何定位

  1. 通过 Flink Web UI 各个 SubTasks/TaskManagers 的 Records Sent 和 Records Received 来确认。

这种单个节点数据量明显高于其他节点的,即存在数据倾斜情况。

通过 Checkpoint detail 里不同的 SubTask 的 Checkpointed Data Size 来判断是否数据倾斜。

感觉不错的宝宝可以送个花哈~ 感谢感谢~~

---点击下方送朵花按钮---

#大数据##offer##面试##面试题##八股##投票#
全部评论

相关推荐

08-13 12:39
已编辑
清华大学 C++
快手一面:百川实习    - 整体流程    - AI Agent 的功能实现        - 流程编排:硬编码/灵活调度        - 工程上能做哪些工作?读取 pdf/网页,prompt 工程        - 对搜索结果是否有排序、是否需要做        - 流式输出,SSE(只有单向,如何双向?)    - 性能优化        - bthread 实现异步调用,原理rpc    - 为什么需要    - 编码格式(序列化)    - 注册中心、服务发现、负载均衡消息队列    - Kafka    - 推和拉 两种思路    - 如何保证同一用户的消息是有序的        - 映射到 同一个 partition操作系统虚拟内存    - MMU    - 缺页中断    - 一页为什么是 4 KB算法题:有序链表转平衡二叉树一面面试官很 nice,也说希望我来,但后续有点悲催,,,一面之后很快约了二面,但约的是一周后,到时间后面试官又频繁更改面试时间,改了四次,过了三周都没面成,感到那边似乎有点混乱,遂让 hr 中止流程了,准备换个部门。 #秋招提前批,你开始投了吗# #如何一边实习一边秋招#
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务