问题描述:在现场或测试环境偶尔会出现用户提交的程序一直处于Accept状态无法调度运行的现象
问题分析:出现这种问题的原因一般有以下两种:
1、用户程序提交的队列当前是否已达到最大可运行程序数,当达到队列maxRunningApps后,提交的程序会处于等待状态,等有程序运行完才会被调度执行
解决方案1:等待正在运行的程序运行完或者将队列的maxRunningApps调大
2、如果用户队列没有达到maxRunningApps,则需要看YARN给用户分配的资源是否足以运行程序,在8088的Scheduler界面,能看到每一个队列的fairshare。
解决方案2:
1)调整队列weight值,是队列能分配到更多的资源;
2)修改程序AM所需要的资源量,重新提交程序;
3)等待其他队列的程序运行完,释放资源。