解决spark driver端cpu使用率超过3000%问题

我们一部分批处理任务用的是spark-sql,默认只有yarn client模式,使用yarn client模式时driver端会成为瓶颈,有时候晚上跑批的时候大量etl任务同时跑,cpu负载过高导致机器告警,可能ssh登陆不上。

晚上加班的时候突然收到机器告警,cpu超过3000%了,赶紧查看一下,是一位同学在跑etl任务,拉过来一起分析。

依次排除了几个可能的因素,最终定位到可能是数据倾斜了。仔细分析,有个地方为了避免表关联时数据倾斜,特地将可能倾斜的数据进行打散处理,但处理的时候有问题,导致另外一个地方数据倾斜了。处理后,cpu从3000%下降到100%以内,恢复正常。

简单来说,数据倾斜,可能会导致driver端cpu负载过高。

你可能感兴趣的:(spark)