HBase入门7 -安全&权限
我的废话: 大年三十夜,看春晚实在是太无聊了,整个《新闻联播》的电视剧版本,还不如上上网,看看资料,喝喝老酒,写点东西来的快活。 近2年来云计算的话题到目前为止风风火火从来没有平静过,一直是大家嘴边讨论的热门话题,人们期望运用云计算提供可靠、
我的废话:
大年三十夜,看春晚实在是太无聊了,整个《新闻联播》的电视剧版本,还不如上上网,看看资料,喝喝老酒,写点东西来的快活。
近2年来云计算的话题到目前为止风风火火从来没有平静过,一直是大家嘴边讨论的热门话题,人们期望运用云计算提供可靠、稳定、高速的计算,在云计算中Google是目前最大的云计算供应商,例如:Google GAE(Google App Engine)和Google的Docs在线文章服务,这些SaaS上线产品的数据存储(datastore)是由BigTable提供存储服务的,在次之前我提到过Yahoo贡献给Apache的那些山寨版本(Google与Yahoo的那些利器),其中Apache的HBase就是山寨了Google的BigTable。
我们知道在云计算的技术话题中Apache的Hadoop项目是一块基石,利用Hadoop项目中的产品可以建立云计算平台和超大型的计算。不知道你是否有想过如果将HBase作为Google GAE上的数据存储(datastore),那么每个用户之间的数据访问权限怎么办?如果使用HBase提供对大客户提供“私有云”(private cloud)或者另一种可能一个公司内部的集群上运行HBase,公司的内部可能有几个部门,某几个部门之间的数据都是独立分离但又运行在一个平台上,那么你就会发现HBase不具备这样的功能,貌似目前HBase的最高版本0.90.0还没有这样的功能对用户的表、Row、Cell的访问权限。但是我们知道Google的GAE上每个用户访问的数据肯定是有权限划分的,不然我只要有权限登录GEA就能看见所有用户存放的数据了。这样的问题你有可能没有想过,但趋势公司的工程师们却为此想到了这点,并且把他们的设想和设计提交了HBase项目组,并且提出了以下主要的设计思想:
1. Client access to HBase is authenticated
2. User data is private unless access has been granted
3. Access to data can be granted at a table or per column family basis.
对HBase中的表和数据划分权限等级和身份验证后,操作权限被分为3大类,每类中包含的操作权限如下所示:
对于方案中涉及到存储的权限的是指整个表或表中的列族,也就是说只考虑在表这个级别的权限,表与表之间的所属关系是存放在 .META. 系统表中,以regioninfo:owner 的格式进行存放,例如:系统中table1这个表是有权限的,这个表权限的存根保存在3个地方 :
* The row in .META. for the first region of table1
* The node /hbase/acl/table1 of Zookeeper
* The in-memory Permissions Mirror of every regionserver that serves table1
如图所示,图中的箭头表示了数据流向的顺序:
查看大图请点击这里
方案中HBase在分布式、集群环境下,而权限一致性的问题交给了Zookeeper来处理,在多个regionservers中,每个服务器的HRegion中存放着多个表,并且实现了(implement)ZKPermissionWatcher接口的nodeCreated() 和 nodeChanged() 方法,这2个方法对Zookeeper 的节点进行监控, 节点的状态发生相应的变化时会ZooKeeper刷新镜像中的权限。
如图所示:
查看大图请点击这里
HBase的这一关于权限的功能正在设计和研讨当中,让我们继续对他保持关注,看看今后将会发生的变化能给我们带来什么样的效果,非常期待这个功能早日正式发布。
2011年的大年三十夜,祝大家新年快乐,往事如意。
相关文章:
Hbase入门6 -白话MySQL(RDBMS)与HBase之间
Lily-建立在HBase上的分布式搜索
MySQL向Hive/HBase的迁移工具
HBase入门5(集群) -压力分载与失效转发
Hive入门3–Hive与HBase的整合
HBase入门篇4
HBase入门篇3
HBase入门篇2-Java操作HBase例子
HBase入门篇
基于Hbase存储的分布式消息(IM)系统-JABase
–end–
原文地址:HBase入门7 -安全&权限, 感谢原作者分享。