我正在参加「掘金·启航计划」
背景
需要使用ranger管理hase权限,毕竟ranger管理yarn队列写了,这个也写一下吧。
目的
OCDP对HBase实现多租户的方案与Hive类似,即:
· 由YARN多个队列实现多租户资源的分配
· 由Ranger实现对多租户HDFS数据访问控制
· 由Ranger实现对多租户HBase表、列族、列的访问控制。
配置
(1) 配置多租户资源和安全访问控制
a. 在Ranger中配置HDFS中HBase数据存放的文件夹(/apps/hbase) 访问权限。配置方法参考上节HDFS多租户中的配置。
b. 在Ambari YARN队列管理视图中增加一个队列用于对HBase应用的资源分配。增加和配置队列方法参考上节中配置YARN多租户的方法。
c. 在Ambari中打开Ranger配置界面(Ranger->Configs->Advanced->Ranger Plugin),打开HBase Ranger Plugin。保存配置并重启受影响的组件。
图1 配置HBase Ranger plugin
d. 打开Ranger界面,在Access Manager->Resource Based Policies下,选择HBASE->OCDP_hbase,创建新策略(Add New Policy)。配置策略名,输入需要设定访问控制的表、列等,在用户和用户组权限中选择用户,或者组,并赋予相应的权限,如下图所示。
图2 Ranger配置HBase访问权限
(2) 验证HBase多租户
ImportTsv是HBase自带的常用的将HDFS数据导入到HBase中的工具。其本质是MapReduce作业。在按上述配置完成HBase多租户配置后,使用ImportTsv工具可以看到用户是否能够有相应的权限将作业提交到相应的队列中,以及是否能够创建HBase的表。
导入数据成功后,使用LDAP用户登录 HBase Shell查看是否能够对导入的表进行查询、修改等操作。如果用户没有权限,会在shell中报错,如下图所示。
图3 HBase多租户权限验证