Yarn中手动kil掉Application的流程是什么?

提问者:帅平 问题分类:大数据
Yarn中手动kil掉Application的流程是什么?
1 个回答
不换爱人
不换爱人
Kill Job通常是客户端发起的,RM的ClientRMService负责处理请求,接收到请求后,先检查权限,确保⽤户有权限Kill Job,然后通知维护这个Application的RMApp对象,根据Application当前状态调⽤相应的函数来处理。这个时候分为两种情况:Application没有在运⾏、Application正在运⾏。
1. Application没有在运⾏
向已经运⾏过的NodeManger节点对应的状态维护对象RMNode发送通知,进⾏清理;向RMAppManager发送通知,将Application设置为已完成状态。

2. Application正在运⾏
如果正在运⾏,也⾸先像情况⼀处理⼀遍,回收运⾏过的NodeManager资源,将Application设置为已完成。另外RMApp还要通知维护任务状态的RMAppAttempt对象,将已经申请和占⽤的资源回收,但是真正的回收是由资源调度器ResourceScheduler异步完成的。
异步完成的步骤是先由ApplicationMasterLauncher杀死AM,并回收它占⽤的资源,再由各个已经启动的RMContainer杀死Container并回收资源
发布于:10个月前 (05-22) IP属地:四川省
我来回答