|NO.Z.00108|——————————|BigDataEnd|——|Hadoop&Spark.V06|——|Spark.v06|Spark 原理 源码|数据倾斜&基本概念|
一、数据倾斜
### --- 基本概念
~~~ 这是我们期望的处理模式:

### --- 什么是数据倾斜
~~~ Task之间数据分配的非常不均匀
~~~ key.hashCode % reduce个数 = 分区号

### --- 数据倾斜有哪些现象
~~~ Executor lost、OOM、Shuffle过程出错、程序执行慢
~~~ 单个Executor执行时间特别久,整体任务卡在某个阶段不能结束
~~~ 正常运行的任务突然失败大多数 Task 运行正常,个别Task运行缓慢或发生OOM
### --- 数据倾斜造成的危害有哪些
~~~ 个别任务耗时远高于其它任务,轻则造成系统资源的浪费,
~~~ 使整体应用耗时过大,不能充分发挥分布式系统并行计算的优势
~~~ 个别Task发生OOM,导致整体作业运行失败
### --- 为什么会发生数据倾斜
~~~ 数据异常
~~~ 参与计算的 key 有大量空值(null),这些空值被分配到同一分区
### --- Map Task数据倾斜,主要是数据源导致的数据倾斜:
~~~ 数据文件压缩格式(压缩格式不可切分)
~~~ Kafka数据分区不均匀
### --- Reduce task数据倾斜(重灾区,最常见):
~~~ Shuffle (外因)。Shuffle操作涉及到大量的磁盘、网络IO,对作业性能影响极大
~~~ Key分布不均 (内因)
### --- 如何定位发生数据倾斜
~~~ 凭借经验或Web UI,找到对应的Stage;再找到对应的 Shuffle 算子
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv018-spark.v03
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」