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

背景信息

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

Spark SQL集成Ranger

  1. 配置Hive集成Ranger。
    在Ranger中,Spark SQL与Hive共享权限配置,想要通过Ranger控制Spark SQL的权限,首先需要将Hive集成Ranger,详细信息请参见Hive配置
  2. 启动Spark。
    1. 集群管理页面,单击相应集群所在行的详情
    2. 在左侧导航栏单击集群服务 > RANGER
    3. 单击右侧的操作下拉菜单,选择 启用Spark
      ranger_spark
    4. 在弹出框输入备注信息,然后单击确定
    5. 单击右上角的查看操作历史,查看任务进度,等待任务完成。
  3. 重启Spark ThriftServer。
    1. 在左侧导航栏单击集群服务 > Spark
    2. 在Spark集群服务页面,单击右侧的操作 > 重启ThriftServer
    3. 在弹出框输入备注信息,然后单击确定
    4. 单击右上角的查看操作历史,查看任务进度,等待任务完成。

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

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

  1. 单击配置好的 emr-hive权限配置示例
  2. 单击右上角的Add New Policy
  3. 配置相关权限。 配置相关权限
    参数 说明
    Policy Name Policy的名称。可自定义。
    database 添加Hive中的数据库,例如:testdb。
    table 添加表,例如:test。
    Hive Column 可添加列名。填写*时表示所有列。
    Select Group User/Group 会自动从集群中同步过来,大约需要一分钟,用户可以事先将它们添加到集群。
    Select User
    Permissions 选择授予的权限。
  4. 单击add。添加一个Policy后,就实现了对foo的授权,然后用户foo就可以对testdb.test的表进行访问了。
    说明 Policy添加后需要1分钟左右才会生效。