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

前提条件

已创建EMR-4.4.1及后续版本的Hadoop集群,并且选择了Ranger和Impala服务。详情请参见创建集群

背景信息

Impala集成Ranger后,支持通过Impala-shell、Hue和JDBC方式在访问Hive表时进行权限控制。

Impala集成Ranger

  1. 阿里云E-MapReduce控制台配置Hive集成Ranger,详情请参见Hive配置
    说明 在Ranger中,因为Impala和Hive使用同一个Ranger Service(emr-hive)进行权限控制,所以需要先配置好Ranger Hive。
  2. Ranger启用Impala。
    1. 阿里云E-MapReduce控制台集群管理页面,单击相应集群所在行的详情
    2. 在左侧导航栏单击集群服务 > RANGER
    3. 在Ranger集群服务页面,单击右上角的操作 > 启用Impala
      Impala_ranger
    4. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。
  3. 重启Impala。
    1. 在左侧导航栏单击集群服务 > Impala
    2. 在Impala集群服务页面,单击右侧的操作 > 重启All Components
    3. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。

权限配置示例

说明 Ranger中Impala暂不支持Hive Row-level Filter及Role权限功能。

例如:给用户foo授予表testdb.test的a列Select权限。

  1. 进入Ranger UI页面,详情请参见概述
  2. 在Ranger UI页面,单击配置好的emr-hive
    权限配置示例
  3. 单击右上角的Add New Policy
  4. 配置权限。
    配置相关权限
    参数 说明
    Policy Name 策略名称,可以自定义。
    database 添加Hive中的数据库,例如testdb。
    table 添加表,例如test。
    Hive Column 添加列名。填写星号(*)时表示所有列。
    Select Group 指定添加此策略的用户组。
    Select User 指定添加此策略的用户。
    Permissions 选择授予的权限。
  5. 单击Add
    添加Policy后,实现对foo的授权。foo用户即可以访问testdb.test表。
    说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。

关闭Impala集成Ranger

当您不需要使用Ranger控制Impala权限时,可以执行如下方法关闭Impala集成Ranger。

  1. Ranger禁用Impala。
    1. 阿里云E-MapReduce控制台集群管理页面,单击相应集群所在行的详情
    2. 在左侧导航栏单击集群服务 > RANGER
    3. 在Ranger集群服务页面,单击右上角的操作 > 禁用Impala
    4. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。
  2. 重启Impala。
    1. 在左侧导航栏单击集群服务 > Impala
    2. 在Impala集群服务页面,单击右上角的操作 > 重启All Components
    3. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。