ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM的一种解决方案

问题现象:spark应用能正常计算得到结果,但是查看executor有很多是dead,如下图

ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM的一种解决方案_第1张图片

查看executor stderr日志发现有错误日志:ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM

除此之外没有其他任何错误信息

 

问题原因: 

由于使能动态资源分配executors数(spark.dynamicAllocation.enabled=true),因此当executor空闲时间达到 spark.dynamicAllocation.executorIdleTimeout=60s的时间后,executor会被移除掉。查看driver端的info日志可得到答案,如下截图

 

解决方法一:

spark.dynamicAllocation.enabled=false,关闭动态分配executors数

解决方法二:

不用理会这个错误,知道是spark on yarn上正常的机制即可。--- 务必要注意是仅有这个错误日志,而应用正常哈,如果还有其他错误日志就要具体分析了

你可能感兴趣的:(Spark,生产案例)