EMR集群YARN队列管理:清空默认队列或新增队列方法咨询
EMR集群YARN队列操作与Spark应用ACCEPTED状态解决办法
一、CLI下清理YARN default队列
YARN没有直接的“清空队列”命令,但可以通过以下步骤清理队列残留状态:
- 确认无残留应用:执行
yarn application -list -appStates ACCEPTED,SUBMITTED,如果还有待处理的应用,继续用yarn app --kill [app_id]杀掉 - 刷新队列配置:执行
yarn rmadmin -refreshQueues,这个命令会重新加载队列配置,清理无效的资源占用记录,让队列回到初始可用状态
二、CLI下新增YARN队列
EMR默认使用CapacityScheduler,纯CLI新增队列步骤:
- 查看当前队列配置:执行
cat /etc/hadoop/conf/capacity-scheduler.xml,确认根队列的配置项yarn.scheduler.capacity.root.queues - 添加新队列配置(假设新增队列名为
new_queue):- 修改根队列包含新队列:
sed -i 's/<value>default<\/value>/<value>default,new_queue<\/value>/g' /etc/hadoop/conf/capacity-scheduler.xml - 添加新队列的基础参数:
echo "<property><name>yarn.scheduler.capacity.root.new_queue.capacity</name><value>20</value></property>" >> /etc/hadoop/conf/capacity-scheduler.xml echo "<property><name>yarn.scheduler.capacity.root.new_queue.maximum-capacity</name><value>50</value></property>" >> /etc/hadoop/conf/capacity-scheduler.xml echo "<property><name>yarn.scheduler.capacity.root.new_queue.state</name><value>RUNNING</value></property>" >> /etc/hadoop/conf/capacity-scheduler.xml
- 修改根队列包含新队列:
- 刷新队列:执行
yarn rmadmin -refreshQueues - 验证:执行
mapred queue -list,确认新队列已显示
三、Spark应用持续ACCEPTED状态排查(已杀所有应用)
如果杀完所有应用后提交Spark仍卡在ACCEPTED,按以下方向排查:
- 检查集群资源:执行
yarn node -list -all确认NodeManager都正常运行;用yarn top查看内存、CPU是否被耗尽(可能有残留进程占用资源) - 检查ResourceManager状态:执行
yarn rmadmin -getServiceState rm确认服务处于RUNNING,同时查看ResourceManager日志/var/log/hadoop-yarn/yarn-yarn-resourcemanager-*.log,搜索资源分配相关错误 - 核对Spark提交参数:检查
--executor-memory、--num-executors等参数是否超过集群可用资源上限,导致无法分配 - 重启YARN服务(最后手段):
sudo stop yarn-resourcemanager sudo stop yarn-nodemanager sudo start yarn-resourcemanager sudo start yarn-nodemanager
内容的提问来源于stack exchange,提问作者stackoverflowflowflwofjlw
相关产品推荐
相关产品推荐

