文档首页/ MapReduce服务 MRS/ 组件操作指南(普通版)/ 使用Yarn/ Yarn常见问题/ 当应用程序从lost_and_found队列移动到其他队列时,应用程序不能继续执行
更新时间:2022-09-30 GMT+08:00

当应用程序从lost_and_found队列移动到其他队列时,应用程序不能继续执行

问题

当删除一个有部分应用程序正在运行的队列,这些应用程序会被移动到“lost_and_found”队列上。当这些应用程序移回运行正常的队列时,某些任务会被挂起,不能正常运行。

回答

如果应用程序没有设置标签表达式,那么该应用程序上新增的container/resource将使用其所在队列默认的标签表达式。如果队列没有默认的标签表达式,则将其标签表达设置为“default label”

当应用程序(app1)提交到队列(Q1)上时,应用程序上新增的container/resource使用队列默认的标签表达式(“label1”)。若app1正在运行时Q1被删除,则app1被移动到“lost_and_found”队列上。由于“lost_and_found”队列没有标签表达式,其标签表达式设置为“default label”,此时app1上新增的container/resource也将其标签表达式设置为“default label”。当app1被移回正常运行的队列(例如,Q2)时,如果Q2支持调用app1中的所有标签表达式(包含“label1”“default label”),则app1能正常运行直到结束;如果Q2仅支持调用app1中的部分标签表达式(例如,仅支持调用“default label”),那么app1在运行时,拥有“label1”标签表达式的部分任务的资源请求将无法获得资源,从而被挂起,不能正常运行。

因此当把应用程序从“lost_and_found”队列移动到其他运行正常的队列上时,需要保证目标队列能够调用该应用程序的所有标签表达式。

建议不要删除正在运行应用程序的队列。