You need to enable JavaScript to run this app.
导航
配置用户组队列映射
最近更新时间:2024.11.27 17:24:58首次发布时间:2024.11.27 17:24:58

火山引擎 E-MapReduce(EMR)控制台支持您对 YARN 集群队列资源进行可视化管理,包括队列新增、队列更名和队列删除。同时可以根据用户组配置队列映射,确保指定用户组的任务按照规则提交到特定队列。

前提条件

  1. 已创建包含 YARN 服务,且EMR 版本高于 3.4.1 / 2.3.1 的集群类型。详见创建集群

说明

EMR 软件栈版本与具体服务的详情,请参阅文档 EMR 版本概述

  1. YARN调度器需使用Capacity Scheduler。

添加用户和用户组

  1. 登录EMR 控制台
  2. 单击资源管理 >集群名称,进入集群详情界面。
  3. 按照下面的步骤添加用户,详见用户管理
  • 添加用户组
    在集群详情界面,单击用户管理 >用户组> 添加用户组。
  • 添加用户
    在集群详情界面,单击用户管理 > 普通用户>添加用户> 手动添加用户。

    说明

    需将新增的用户添加到对应的用户组中。

新增队列

  1. 登录EMR 控制台
  2. 单击右侧导航栏中集群管理 > 集群列表 > 集群名称,进入集群详情界面。
  3. 在集群详情界面,单击服务管理>YARN>队列管理,进入队列管理页面。
  4. 在队列管理界面,单击右侧添加队列按钮,进行新增队列操作。参考 YARN队列管理

说明

新增队列后,需点击Refresh Queue,使队列生效。

配置用户组队列映射

使用Capacity Scheduler调度器队列映射(Queue Mapping)特性,在capacity-scheduelr.xml配置文件中使用yarn.scheduler.capacity.queue-mappings配置用户或用户组提交作业的默认队列规则,通过使提交作业强制使用Queue Mappings中规定的映射。
在集群页面,单击 服务管理 > YARN > 服务参数 > capacity-scheduler 进行修改,定位到队列的参数配置

这里配置了2个队列developerQueue,qaQueue的映射关系,每个队列跟可视化的配置一致使用 PlacementRule 进行用户到队列的映射:在 capacity-scheduler.xml 中修改如下默认配置为true

<property>
    <name>yarn.scheduler.capacity.queue-mappings-override.enable</name>
    <value>true</value>
  </property>

新增队列配置:

<property>
    <name>yarn.scheduler.capacity.queue-mappings</name>
    <value>
        g:developer:developerQueue,g:qa:qaQueue
    </value> 
</property> 

注意

  • 新增队列名称中不需要加root. 的前缀,直接写队列名称即可。
  • 如果队列名称填写不正确,会导致YARN ResourceManager启动报错。

其中yarn.scheduler.capacity.queue-mappings的值符合如下规则: u:%user:queueA,g:%group:queueB%user是一个占位符,表示用户的用户名;%group是用户所属的第一个用户组。这条规则的意思是,如果作业是由指定的用户组提交的,它会被自动提交到相应的队列。
在上面的配置中,指定了 developer组提交的作业到 developerQueue中, qa组提交的作业到qaQueue中。

注意

  • 配置修改后须重启YARN ResourceManager ,否则配置无法生效。
  • 队列映射非常灵活,它允许基于用户名、用户组甚至是提交应用的应用名称来进行映射。
  • PlacementRule 的配置非常灵活,您可以根据实际需求调整规则,使其更好地适应您的组织架构。
  • 排查错误时,请检查 YARN ResourceManager 的日志,确认映射规则已生效。

通过上述步骤,您可以基于用户组自动将作业提交到不同的队列中,从而帮助更好地管理和分隔不同项目或部门的资源使用。

配置验证

登陆集群,使用 hadoop提交或者 spark-sql提交,使用不同用户提交YARN作业来做快速验证。
访问YARN ResourceManager UI页面,详细操作请参考访问链接

在YARN ResourceManager UI页面可以查看用户提交的作业和队列。
举例

  1. 使用 ssh登陆用户anfa, anfa用户属于developer 组, 提交一个YARN作业如spark-sql --master yarn。
  1. 使用用户 qa1 ssh登陆,qa1用户属于qa组,提交一个YARN作业如spark-sql --master yarn
  1. 观察 YARN ResourceManager UI页面,此时anfa提交的任务在root.developerQueue中, qa1提交的任务在 root.qaQueue中。
  1. 不同用户组的作业已提交到对应的队列中,配置已生效。