|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

 

 

posted on 2022-04-13 14:40  yanqi_vip  阅读(18)  评论(0)    收藏  举报

导航