一文读懂HBase多租户

本文详细介绍了HBase的多租户实现,包括Namespace&ACL、Quota和RSGroup三个方面。通过Namespace进行资源隔离,使用ACL进行权限控制,利用Quota限制资源使用,以及通过RSGroup实现RS的分组隔离,从而保证多用户共享HBase集群时的数据隔离性和资源效率。
摘要由CSDN通过智能技术生成

640?wx_fmt=gif

本文从三个方面介绍了HBase的多租户实现。

上篇文章回顾:HDFS短路读详解

多租户(multi-tenancy technology),参考维基百科定义,它是在探讨与实现如何于多用户的环境下共享相同的系统或程序,并且仍可确保各用户间数据的隔离性。随着云计算时代的到来,多租户对于云上服务显得更加重要。所以HBase也有许多多租户相关的功能,其为多个用户共享同一个HBase集群,提供了资源隔离的能力。本文将从Namespace&ACL,Quota,RSGroup三个方面来进行介绍。

Namespace&ACL

在HBase中,创建namespace是一个很轻量的操作,将不同业务的表隔离在不同的namespace是一个最简单的资源隔离的方法。同时,ACL、quota、 rsgroup等常用的资源隔离方式都支持设置在namespace上。

ACL,全称Access Control Lists,用于限制不同的用户对不同的资源的操作或访问权限。

使用ACL需要添加如下配置:

640?wx_fmt=png

1、ACL的几个概念

640?wx_fmt=png

User分为普通user和super user。super user包括启动HBase服务的用户和hbase.superuser配置的用户,可以对集群进行管理操作。普通用户需要授权后,才能访问或操作HBase。Scope可以理解为资源的粒度。

HBase的各种操作需要的Action可以在HBase的官方文档中查看:http://hbase.apache.org/book.html#appendix_acl_matrix

结合用户的访问或操作需求,将user在合理的scope上设置合理的action,是实现用户权限控制的最佳方式。

2、设置或取消权限

在HBase shell中或调用HBase API,设置或取消权限。shell中的操作如图:

640?wx_fmt=png

设置namespace的权限需要加@前缀:

640?wx_fmt=png

设置Cell的权限:

640?wx_fmt=png

3、权限的存储

存储在hbase:acl表中,rowkey是根据scope计算出来的。acl表结构如下表:

640?wx_fmt=png

Cell权限使用tags of HFile v3存储。

4、鉴定权限

鉴定权限是指判断某个用户是否拥有某个操作的权限。这个过程是在AccessController中完成的,AccessController是一个实现了MasterObserver、RegionServerObserver、RegionObserver等的coprocessor,在master、regionserver、region等操作的hook中检查权限。由于每台RS上都维护了完整的PermissionCache,检查PermissionCache中是否包含了所需的权限,如果权限不足,则抛出AccessDeniedException。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值