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)
还没有任何评论哟~
