You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yarn Capacity Scheduler ACL规则不生效问题求助

排查步骤与解决方案
  • 修正Spark提交命令格式
    你当前的命令参数顺序有误:--master yarn cluster应改为--master yarn --deploy-mode cluster。参数格式错误可能导致--queue a未被正确解析,任务实际提交到了默认队列而非队列a。先修正命令重新测试:

    spark-shell --master yarn --deploy-mode cluster --queue a
    

    之后通过YARN WebUI或yarn application -status <app-id>命令确认任务实际所属队列。

  • 确认CapacityScheduler已启用
    检查yarn-site.xml中调度器类配置,确保值为:

    <property>
      <name>yarn.resourcemanager.scheduler.class</name>
      <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    </property>
    

    若配置为FairScheduler或其他调度器,capacity-scheduler.xml的队列ACL配置完全不会生效。

  • 校验capacity-scheduler.xml的队列ACL配置
    重点确认队列a的提交权限设置:

    1. 队列a的yarn.scheduler.capacity.root.a.acl_submit_applications必须明确指定为user1,不能留空或继承根队列配置。示例配置:
      <property>
        <name>yarn.scheduler.capacity.root.a.acl_submit_applications</name>
        <value>user1</value>
      </property>
      
    2. 检查根队列的yarn.scheduler.capacity.root.acl_submit_applications,若配置为*(允许所有用户)且队列a未单独配置提交ACL,会继承根队列权限,导致user2可提交任务。
    3. 确认ACL格式正确:用户与组用逗号分隔,无多余空格,比如user1,group1,避免写成user1 或user1;group1。
  • 确保ResourceManager已加载新配置
    修改capacity-scheduler.xml或yarn-site.xml后,必须重启YARN ResourceManager或刷新队列配置:

    • 刷新队列配置(仅适用于队列权限修改):
      yarn rmadmin -refreshQueues
      
    • 若修改了调度器类,需重启ResourceManager:
      stop-yarn.sh
      start-yarn.sh
      
  • 检查user2是否为YARN超级用户
    查看yarn-site.xml中的yarn.admin.acl配置,若包含user2,则user2拥有YARN管理员权限,队列ACL限制对其无效。示例:

    <property>
      <name>yarn.admin.acl</name>
      <value>user1,user2</value>
    </property>
    

    这种情况需要移除user2的管理员权限。

  • 排查Spark默认配置是否覆盖队列参数
    查看spark-defaults.conf中是否存在spark.yarn.queue配置,若有该配置,命令行的--queue参数会被默认值覆盖。比如:

    spark.yarn.queue    default
    

    若存在此配置,可删除它或确认命令行参数优先级(Spark 2.x+命令行参数优先级更高)。

  • 查看ResourceManager日志定位问题
    查看ResourceManager日志文件(默认路径为$HADOOP_HOME/logs/yarn-*-resourcemanager-*.log),搜索acl_submit_applications或user2关键词,找到任务提交时的ACL校验日志,确认是否存在配置解析错误或权限绕过情况。


内容的提问来源于stack exchange,提问作者Đắc An Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:27:17