本文介绍如何将Spark集成到Ranger,以及相关的权限配置。

前提条件

已创建集群,详情请参见创建集群
说明 创建集群时,产品版本需高于EMR-3.26.0。

背景信息

Spark集成Ranger进行权限控制,仅适用于通过Spark ThriftServer执行Spark SQL作业。例如,使用Spark的Beeline客户端或JDBC接口,通过Spark ThriftServer提交Spark SQL作业。

Spark SQL集成Ranger

  1. 配置Hive集成Ranger。
    在Ranger中,因为Spark SQL与Hive共享权限配置,所以只需要将Hive集成Ranger,便可以通过Ranger控制Spark SQL的权限。

    将Hive集成Ranger的详细信息请参见Hive配置

  2. Ranger启用Spark。
    1. 集群管理页面,单击相应集群所在行的详情
    2. 在左侧导航栏单击集群服务 > RANGER
    3. 单击右侧的操作下拉菜单,选择启用Spark
      ranger_spark
    4. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。
  3. 重启Spark ThriftServer。
    1. 在左侧导航栏单击集群服务 > Spark
    2. 在Spark集群服务页面,单击右侧的操作 > 重启ThriftServer
    3. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。

权限配置示例(Ranger UI配置相关权限)

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

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