Advertisement

spark 2.x 数据倾斜(隐藏的笛卡尔积)排查及处理过程

阅读量:

目录

一、问题描述

二、尝试调整参数

三、查看spark具体sql流程图


一、问题描述

有一个DWD层中间表的入表操作存在多天无法完成的情况,并且通常所需时间为2分钟左右。过去曾有过类似的情形,并通过检查出现异常的字段得以解决(字段值中包含大量杂乱的非标准字符)。而这次问题依旧令人困惑。

二、尝试调整参数

在查看yarn任务页面时,发现该页面始终无法连接;观察到部分任务长时间运行出现阻塞现象,同时发现shuffled后的record数明显超过其他执行器,不仅导致数据溢出到内存空间,甚至扩展到了磁盘空间,这表明问题依旧存在;随后通过查阅优化资料库,对多个相关参数进行了逐一调试

--conf spark.shuffle.sort.bypassMergeThreshold=5000 (此配置项当前被设定为不合理值,并未展现出明显的功能意义,在后续处理中将予以移除)

--conf spark.reducer.maxSizeInFlight=256M

--conf spark.shuffle.file.buffer=96K

当加上第3个参数之后,任务不会那么快跑崩了,但最后还是存在问题。

也考虑在join操作的关键字上引入随机数前缀(两个表关联),其中a表增加0-n范围内的随机数作为前缀(将每个数值作为前缀添加到b表前面),以确保

全部评论 (0)

还没有任何评论哟~