数据倾斜是分布式计算中常见的问题,指数据或计算负载在集群节点间严重不均衡,导致部分节点负载过高(成为瓶颈),而其他节点空闲,整体性能显著下降。主要分为两类:
一、数据倾斜的类型
-
存储倾斜:
- 表现: 数据本身在物理存储上分布不均(如HDFS某些DataNode存储的数据量远大于其他节点)。
- 原因: 数据写入时分区策略不合理;数据本身存在严重的热点(如某个用户ID或商品ID的数据量极大);历史数据累积导致。
-
计算倾斜:
- 表现: 在数据处理任务(如MapReduce, Spark, Flink)运行期间,某些Task处理的数据量或计算复杂度远高于其他Task,导致这些Task运行时间极长,拖慢整个作业。
- 原因: 这是最常见的问题类型,通常由以下操作引起:
Group By/Key Aggregation: 某个或某几个Key对应的数据量极大(如热点用户、默认值null/0/空字符串集中、枚举字段中某个值占比过高)。Join:- 大表Join大表: 参与Join的Key存在严重倾斜。
- 大表Join小表: 小表过大无法广播,且分区策略导致某些分区数据量巨大。
Distinct/Count Distinct: 本质也是基于Key的操作,容易受热点Key影响。

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



