前面简介中介绍了 E-MapReduce 中创建启动 Ranger 服务的集群,以及一些准备工作,本节介绍 HBase 集成 Ranger 的一些步骤流程。

启动HBase

  1. 通过主账号登录阿里云 E-MapReduce 控制台
  2. 单击上方的集群管理页签。
  3. 集群管理页面,单击相应集群所在行的详情
  4. 左侧导航栏单击集群服务 > RANGER
  5. 单击右侧的操作下拉菜单,选择 启用 HBaseEnable HBase PLUGIN
  6. 在弹出框输入执行 Commit 记录,然后单击确定
  7. 单击右上角查看任务进度,等待任务完成。

Ranger UI 添加 HBase service

  1. 进入 Ranger UI 页面,详情请参见Ranger 简介
  2. 在 Ranger 的 UI 页面添加Hase Service。add_hbase
  3. 配置相关参数。add_hbase
    参数 说明
    Service Name 固定值emr-hbase。
    Username 自定义。
    Password 自定义。
    hadoop.security.authentication
    包括:
    • Simple:表示标准集群(非高安全集群)。
    • Kerberos:表示高安全集群。
    hbase.master.kerberos.principal 标准集群时不填写;高安全集群时填写/_HOST@EMR.${id}.com
    说明 ${id}可登录机器执行host命令,hostname中的数字即为 ${id} 的值。
    hbase.security.authentication
    包括:
    • Simple:表示标准集群(非高安全集群)。
    • Kerberos:表示高安全集群。
    hbase.zookeeper.property.clientPort 固定值2181
    hbase.zookeeper.quorum 固定值emr-header-1,emr-workker-1
    zookeeper.znode.parent 固定值/hbase
    Add New Configurations
    • Name:固定值policy.download.auth.users
    • Value:固定值hdfs
    说明 测试连接失败时,可忽略。
  4. 单击Add

重启 HBase

上述任务完成后,需要重启 HBase 才生效。重启 HBase,请按照以下步骤操作:

  1. 左侧导航栏单击集群服务 > HBase
  2. 单击右上角操作下拉菜单,选择 重启 All Components
  3. 在弹出框输入执行 Commit 记录,然后单击确定
  4. 单击右上角查看操作历史查看任务进度,等待重启任务完成。

设置管理员账号

用户需要设置管理员账号的权限(admin 权限),用于执行一些管理命令,如balance/compaction/flush/split等等。

设置管理员账号

上图中已经存在权限策略,您只需要单击右侧的edit,将 user 改成自己想要设置的账号即可,另外也可以修改其中的权限(如只保留Admin权限)。hbase 账号必须要默认设置为管理员账号。

若使用 Phoenix,则还需在 ranger 的 HBase 中新增如下策略:

参数 说明
Column Family *
Column *
Groups public
Permissions ReadWrite, Create, Admin

权限配置示例

上面一节中已经将 Ranger 集成到 HBase,可以进行相关的权限设置。例如给用户 test 授予表 foo_ns:test 的Create/Write/Read权限。

  1. 单击配置好的 emr-hbase权限配置示例
  2. 单击右上角的Add New Policy
  3. 配置相关权限。
    参数 说明
    Policy Name 可自定义。
    HBase Table 表对象,格式为${namespace}:${tablename}。可输入多个,填写一个需按一次Enter键。

    如果是default的namespace,不需要加default,如左边的t2可支持通配符*;如foo_ns:*表示foo_ns下的所有表。

    目前对default:*目前还不支持。

    HBase Column-family 列簇。
    HBase Column 列名。
    Select Group User/Group 会自动从集群中同步过来,大约需要一分钟,用户可以事先将它们添加到集群。
    Select User
    Permissions 选择授予的权限。
  4. 单击add。添加一个 Policy 后,就实现了对test用户的授权,然后 test 用户就可以对 foo_ns:test 表进行访问了。
    说明 Policy 添加后需要 1 分钟左右才会生效。