前言

  • 基于HDP的解决方案搭建,版本2.6.3.0-235
  • 主要是用Ranger做细粒度的权限控制
  1. 通过Ranger同步AD域的用户信息,不同步组信息(组信息很乱)
  2. Ranger上创建组信息,给用户分配合理的组
  3. Ranger上给组分配权限

二次开发简叙

  1. 为了后续HDP升级的方便,不建议直接修改源代码

  2. 新启动一个项目(UserGroupMappingCustom),通过调用Ranger的Rest接口,获得用户自定义的组信息

  3. 修改core-site.xml,增加以下的Properties

    1
    hadoop.security.group.mapping=*.*.*.UserGroupMappingCustom
  4. 只有重启HDFS,自定义的功能才能生效

  5. 需要将项目的jar包放在多个服务的lib目录下面(会有错误提示缺少类,缺少的服务增加jar包即可)

1
2
3
4
涉及的服务如下,视自己的项目而定

ranger-yarn-plugin、ranger-hbase-plugin、ranger-hdfs-plugin、ranger-hive-plugin
hadoop、hive、hbase、hive2

参考

  1. https://ranger.apache.org/apidocs/resource_XUserREST.html
  2. https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.3/bk_security/content/hadoop_group_lookup_iap.html