问题:
executor dead的数据越来越多,导致数据处理速度变慢,最后分配的所有的executor都dead了,程序挂掉
日志报错:
18/05/23 17:21:30 ERROR CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM
解决方案:
1、增加executor的内存大小
2、加大executor通信超时时间spark.executor.heartbeatInterval(默认是10s),可调整到60s
本质都是减少GC对executor的影响。
调参后重跑成功了,gc情况如下,虽然还有数据倾斜的情况存在,但是较之前好很多,此时可以从业务代码上继续进行优化。