本文介绍如何将YARN集成至Ranger,以及如何配置权限。
背景信息
Ranger YARN仅支持Scheduler队列的权限控制,不支持Fair队列的权限控制。Ranger YARN队列权限控制与YARN自带的Capacity Scheduler配置共同生效。鉴权流程如下图所示。

前提条件
已创建DataLake集群,并选择了Ranger服务,创建集群详情请参见创建集群。
使用限制
YARN必须使用Capacity Scheduler调度器,开启ACL权限,并确保没有非必要的授权,详情请参见YARN调度器和YARN高安全特性使用指南。
须确认以下信息:
- YARN服务的yarn-site.xml中已配置
yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
。 - YARN ACL功能总开关已开启(即
yarn.acl.enable=true
)。 - 在YARN服务的capacity-scheduler.xml中,确认Capacity Scheduler调度器的配置
yarn.scheduler.capacity.root.acl_submit_applications=
(配置值为单个空格)和yarn.scheduler.capacity.root.acl_administer_queue= hadoop
(hadoop
前有单个空格),表示所有队列默认将队列管理权限授权给hadoop组。 - 确认除了上述root队列ACL配置外没有其他
acl_submit_applications
或者acl_administer_queue
配置,避免YARN ACL影响Ranger鉴权预期结果。
操作步骤
- 进入集群服务页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 单击目标集群操作列的集群服务。
- Ranger启用YARN。
- 在集群服务页面,单击Ranger-plugin服务区域的状态。
- 在服务概述区域,打开enableYARN开关。
- 在弹出的对话框中,单击确定。
- 重启YARN ResourceManager。
- 在集群服务页面,选择 。
- 在YARN集群服务的状态页面,单击ResourceManager操作列的重启。
- 在弹出的对话框中,输入执行原因,单击确定。
- 在确认对话框中,单击确定。
权限配置示例
Ranger启用YARN后,已默认添加好了YARN Service。您可以使用YARN Service,授予emr-user用户的队列管理权限。
- 进入Ranger UI页面,详情请参见Ranger概述。
- 在Ranger UI页面,单击配置好的emr-yarn。
- 单击右上角的Add New Policy。
- 根据您的实际需求配置相关参数。
参数 说明 Policy Name 策略名称,可以自定义。 Queue 队列名称。例如root.default。 recursive 子队列是否继承该权限。 Select Group 指定添加此策略的用户组。 Select User 指定添加此策略的用户。例如,emr-user。 Permissions 选择授予的权限。例如,admin-queue。 - 单击Add。添加Policy后,实现对emr-user的授权。emr-user用户可以向root.default队列提交作业。说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。