FAQ-Container killed on request. Exit code is 143

问题描述/异常栈

Container killed on request. Exit code is 143

FAQ-Container killed on request. Exit code is 14 - 图1

解决方案

1、明确该任务资源不足的情况(输入程序的数据量明显大于该任务的内存资源大小):  
可以尝试增加executor的内存,或减少executorcore数量,建议executor核数不超过5  
2、该任务资源总量充足的情况:  
查看是否有某阶段stage task数量过少的情况,没有充分利用到任务的资源;该情况应当调整优化stagetask数至合适的数量

问题原因

RECEIVED SIGNAL TERM 说明 Application Master 进程(即 Spark Driver 进程)
收到了来自外部的 kill 信号,此信号由 YARN NodeManager 发送。
YARN 作为一个资源管控框架,会周期性地监测 container 实际使用的内存,
当超过其所申请的内存后,会像 container 进程发送 kill 信号(即 SIGNAL TERM),
container 进程收到此信号后,会清理资源并尽快退出;
若进程在一定时间内未退出,YARN NodeManager 将直接发送 kill -9 信号,
强制 kill container 进程。

作者:林帅