JindoFS的Block模式支持文件系统权限功能。权限管理目前支持两种方式,unix权限和Ranger权限。

背景信息

使用unix权限,用户可以设置JindoFS文件系统上的文件的777权限,owner、group,根据这些信息对当前用户的权限进行校验。使用Ranger权限,用户可以配置更复杂的权限,比如使用路径通配符。用户可以在Apache Ranger组件上配置用户权限,然后在JindoFS上开启Ranger插件,就可以在Ranger上对JindoFS权限(和其它组件权限)进行一站式管理。

JindoFS权限

启用JindoFS Unix权限

  1. 进入SmartData服务。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,选择地域(Region)。
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏单击集群服务 > SmartData
  2. 进入bigboot服务配置。
    1. 单击配置页签。
    2. 单击bigboot
      bigboot
  3. 单击自定义配置,在新增配置项对话框中,设置Key为jfs.namespaces.<namespace>.permission.method,Value为unix,单击确定
  4. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框中,输入执行原因,开启自动更新配置
    3. 单击确定
  5. 单击右上角的操作 > 重启 Jindo Namespace Service
    开启文件系统权限后,使用方式跟HDFS一样。支持以下命令:
    hadoop fs -chmod 777 jfs://{namespace_name}/dir1/file1
    hadoop fs -chown john:staff jfs://{namespace_name}/dir1/file1

    如果用户对某一个文件没有权限,将返回如下错误信息。

    error

启用JindoFS Ranger权限

  1. 添加ranger。
    1. bigboot页签,单击自定义配置
    2. 新增配置项对话框中,设置Key为jfs.namespaces.<namespace>.permission.method,Value为ranger
    3. 保存配置。
      1. 单击右上角的保存
      2. 确认修改对话框中,输入执行原因,开启自动更新配置
      3. 单击确定
    4. 单击右上角的操作 > 重启 Jindo Namespace Service
  2. 配置ranger。
    1. 进入Ranger UI页面。
      进入详情请参见Ranger简介
    2. Ranger UI添加HDFS service。
      Ranger UI
    3. 配置相关参数。
      参数 说明
      Service Name jfs-{namespace_name}。
      Username 自定义。
      Password 自定义。
      Namenode URL 输入jfs://{namespace_name}
      Authorization Enabled 使用默认值No。
      Authentication Type 使用默认值Simple。
      dfs.datanode.kerberos.principal 不填写。
      dfs.namenode.kerberos.principal
      dfs.secondary.namenode.kerberos.principal
      Add New Configurations 不填写。
    4. 保存配置。
      1. 单击右上角的保存
      2. 确认修改对话框中,输入执行原因,开启自动更新配置
      3. 单击确定

启用JindoFS Ranger权限+LDAP用户组

如果您在Ranger UserSync上开启了从LDAP同步用户组信息的功能,那么JindoFS也需要修改相应的配置,才能获取LDAP的用户组信息,从而对当前用户组进行Ranger的权限校验。

  1. bigboot页签,单击自定义配置
  2. 新增配置项对话框中,设置以下参数配置LDAP,单击确定
    参数 示例
    hadoop.security.group.mapping org.apache.hadoop.security.CompositeGroupsMapping
    hadoop.security.group.mapping.providers shell4services,ad4users
    hadoop.security.group.mapping.providers.combined true
    hadoop.security.group.mapping.provider.shell4services org.apache.hadoop.security.ShellBasedUnixGroupsMapping
    hadoop.security.group.mapping.provider.ad4users org.apache.hadoop.security.LdapGroupsMapping
    hadoop.security.group.mapping.ldap.url ldap://emr-header-1:10389
    hadoop.security.group.mapping.ldap.search.filter.user (&(objectClass=person)(uid={0}))
    hadoop.security.group.mapping.ldap.search.filter.group (objectClass=groupOfNames)
    hadoop.security.group.mapping.ldap.base o=emr
    说明 配置项请遵循开源HDFS相关内容。
  3. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框中,输入执行原因,开启自动更新配置
    3. 单击确定
  4. 单击右上角的操作 > 重启 All Components
  5. 通过ssh登录emr-header-1节点,配置Ranger UserSync,启用LDAP选项。
    详情请参见Ranger usersync对接LDAP