本文介绍如何将HDFS集成到Ranger,以及如何配置权限。

背景信息

Ranger HDFS权限控制与HDFS ACL共同生效,且优先级低于HDFS ACL。只有在HDFS ACL权限校验被拒绝时才会校验Ranger HDFS权限。鉴权流程如下图所示。HDFS Config

前提条件

已在E-MapReduce上创建集群,并选择了Ranger服务,详情请参见创建集群

HDFS集成Ranger

  1. 进入集群详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. Ranger启用HDFS。
    1. 在左侧导航栏选择集群服务 > RANGER
    2. 单击右侧的操作下拉菜单,选择启用HDFS
      HDFS
    3. 执行集群操作。
      1. 执行集群操作对话框中,输入执行原因,单击确定
      2. 确认对话框,单击确定
      3. 单击右上角查看操作历史查看任务进度,等待任务完成。
  3. Ranger UI添加HDFS Service。
    1. 进入Ranger UI页面,详情请参见概述
    2. 在Ranger UI页面,单击HDFS所在行的Add图标,添加HDFS Service。
      Ranger UI
    3. 配置相关参数。
      hdfs
      参数 描述
      Service Name 固定值emr-hdfs。
      Username 固定值hadoop。
      Password 自定义。
      Namenode URL
      • 非高可用集群:hdfs://emr-header-1:9000
      • 高可用集群:hdfs://emr-cluster
      Authorization Enabled 普通集群选择No;高安全集群选择Yes
      Authentication Type
      • Simple:表示普通集群。
      • Kerberos:表示高安全集群。
      dfs.datanode.kerberos.principal 普通集群时不填写;高安全集群时填写hdfs/_HOST@${REALM}
      说明 ${REALM}为KDC的Realm值,EMR高安全集群的Realm可以通过查看任意节点下/etc/krb5.conf文件的kdc_realm配置获取。
      例如,查看到的kdc_realm配置如下图。kdc_realm
      dfs.namenode.kerberos.principal
      dfs.secondary.namenode.kerberos.principal
      Add New Configurations 需要添加参数policy.download.auth.users,参数值为hdfs。hdfs
      如果您的集群为高可用集群,还需额外添加以下配置:
      • dfs.nameservices:固定值emr-cluster。
      • dfs.ha.namenodes.emr-cluster
      • dfs.namenode.rpc-address.emr-cluster.nn1
      • dfs.namenode.rpc-address.emr-cluster.nn2
      • dfs.client.failover.proxy.provider.emr-cluster
      hdfs-ha
      参数值请根据实际环境信息填写。您可以在EMR控制台HDFS服务的配置页面获取。mn1
    4. 单击Add
  4. 重启HDFS。
    1. 左侧导航栏单击集群服务 > HDFS
    2. 单击右上角操作下拉菜单,选择重启NameNode
    3. 执行集群操作。
      1. 执行集群操作对话框中,输入执行原因,单击确定
      2. 确认对话框,单击确定
      3. 单击右上角查看操作历史查看任务进度,等待任务完成。

权限配置示例

例如,授予test用户/user/foo路径的Write和Execute权限。

  1. 进入Ranger UI页面,详情请参见概述
  2. 在Ranger UI页面,单击配置好的emr-hdfs
    权限配置示例
  3. 单击右上角的Add New Policy
  4. 配置相关参数。
    Add new policy
    参数 描述
    Policy Name 策略名称,可以自定义。
    Resource Path 资源路径。例如,/user/foo。
    recursive 子目录或文件是否集成权限。
    Select Group 指定添加此策略的用户组。
    Select User 指定添加此策略的用户。例如,test。
    Permissions 选择授予的权限。例如,Write和Execute。
  5. 单击Add
    添加Policy后,实现了对test用户的授权。test用户对HDFS路径/user/foo拥有了Write和Execute权限。
    说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。