更新时间:2022-02-22 GMT+08:00

NodeManager关闭导致Executor(s)未移除

问题

在Executor动态分配打开的情况下,如果在任务执行过程中,执行NodeManager关闭动作,NodeManager关闭节点上的Executor(s)在空闲超时之后,在driver页面上未被移除。

回答

这是因为ResourceManager感知到NodeManager关闭时,Executor(s)已经因空闲超时而被driver请求kill掉,但因NodeManager已经关闭,这些Executor(s)实际上并不能被kill掉,因此driver不能感知到这些Executor(s)的LOST事件,所以并未从自身的Executor list中移除,从而导致在driver页面上还能看到这些Executor(s),这是YARN NodeManager关闭之后的正常现象,NodeManager再次启动后,这些Executor(s)会被移除。