实战干货解决Spark数据倾斜之快速准确定位数据倾斜产生原因
Posted 勾叔谈大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战干货解决Spark数据倾斜之快速准确定位数据倾斜产生原因相关的知识,希望对你有一定的参考价值。
大家好,我是勾叔。今天勾叔教大家快速准确定位数据倾斜产生原因的技巧。话不多说,直入主题。
勾叔将从数据特征分析、数据倾斜判定以及数据倾斜定位来为大家讲述。
数据特征分析
-
数据规模有多大、文件有多少个、每个文件的大小 -
预估资源的开销
-
普通文件格式、列式存储的文件格式 -
文件是否压缩、压缩格式是什么
-
每一列有值的行数、每个值的行数分布(特别是key相关的列) -
分析列值分布可以通过数据采样完成 注意:数据倾斜处理依赖这一步的数据列值分布结果。
数据倾斜判定条件
-
Executor lost、OOM、Shuffle过程频繁出现错误信息 -
单个Executor执行时间特别久,整体任务卡在某个阶段无法结束 -
正常运行的任务突然失败,而大多数 Task 运行正常,个别Task运行缓慢或发生OOM
-
个别task处理的数据量远多于其他task -
每个task的拥有的资源是相同的,处理大数据量的task的所需的时间自然远多于其他task
定位数据倾斜
定位数据倾斜有两种方式,其一为借助 Spark Web UI,其二是定位 shuffle 算子,如下:
-
借助 Spark Web UI -
定位 shuffle 算子
以上是关于实战干货解决Spark数据倾斜之快速准确定位数据倾斜产生原因的主要内容,如果未能解决你的问题,请参考以下文章
GaussDB(DWS)发生数据倾斜不要慌,一文教你轻松获取表倾斜率
GaussDB(DWS)发生数据倾斜不要慌,一文教你轻松获取表倾斜率