背景:
随着HBase在性能和稳定性持续改善和成功案例的积累,HBase逐渐成为了在大数据NoSQL领域的事实标准。越来越多有着大数据应用和处理需求的互联网公司、IT公司,将离线或者半在线的数据平台搭建在HBase之上。
在深入使用和运维过程中,我们发现当新的应用需求而来时,处于性能和效率的考虑,我们就要根据数据规模单独搭建系统,而应用需求和规模的变化,会给HBase的运维和资源使用带来了一定的困扰:
1)HBase集群越多,运维成本就越大。因为稳健的Hbase监控是要从底层存储设备、网络资源、内存、CPU、hdfs、RegionServer到应用服务器读写性能的自下向上的体系,搭建HBase集群的运维开销较大。
2)应用需求的改变,短时间内资源扩容与平衡资源利用率之间存在矛盾。因为需求对于资源需求的变化,可以通过短时间内牺牲非优先的存储性能来平衡。
于是,我们就在考虑构建一种HBase隔离技术,只需维护一个HBase集群,满足各个table在性能上的互不干扰,又支持访问安全隔离。
技术介绍:
HBase按照Table内RowKey进行横向切分成不同的Region,AssignmentManager会把Table的Region按照尽可能的公平性分配到不同的RegionServer上。
AM中LoadBalancer负责Region–>RS的分配和移动,因此,在HBASE_HOME_DIR/bin/graceful_stop.sh的脚本中,如果支持Region reload的选项,会首先关闭balance_switch开关,避免下线的Region被LoadBalancer移动到其它RS。目前LoadBalancer采用的DefaultLoadBalancer采用每个RS上Region个数尽可能平衡的调度策略。
如果实现HBase隔离技术,在AM层面就需要解决如下的问题:
1、实现Table与RS的映射关系。建立类似于RegionServer Group实体(RSG),RS与RSG之间产生对应关系,Table与RSG之间产生映射关系。
- 借助实现LoadBalancer接口,实现从Table到不同RegionServerGroup的映射。
- HBase的Coprocessor机制,实现对于RegionServer Group相关信息的管理。具体可以参见下图:
2、table配置NameSpace。借助HDFS Federation的概念与方法,实现对于Table的区分、配置、以及访问的ACL。
1)每一个Table都隶属于一个NameSpace之下,每个NameSpace都有自己的Quota信息。例如Region的个数、hfile存储空间、甚至HBase之上的RPC的流量控制等。
2)每一个Table对应一个ACL,可以建立在ColumnFamily或者更细粒度的Column上。
例如 /hbase/data/binospace/binospace.webdata ,其中/hbase是root,data代表了这是普通的数据表,而非系统表,binospace是用户的NameSpace,而webdata是具体的表名。
使用类似目录层次的方式来管理hbase的Table的好处有:
1)hdfs或者文件系统在目录层次的管理上有成熟的方案。
2)以目录结构为特征的ACL、Quota等配置更有效。
总结:
在当前HBase应用不断发展,Snapshot、Replication、Block Encoding、Random Read Performance、Secondary Indexing 以及本文提到的Isolation都是摆在HBase高级用户或者二次开发面前的难题。隔离技术决定了HBase能否实现资源统一化管理的关键。本文介绍的RegionServerGroup和NameSpace技术,目前看来是实现隔离的一种比较有效的方案。
参考文档:
[1]RegionServer Group https://issues.apache.org/jira/browse/HBASE-6721
[2]NameSpace https://issues.apache.org/jira/browse/HBASE-8015
[3]Hug2013April HBase-As-a-Service-At-Yahoo! http://www.slideshare.net/ydn/april-2013-hug-hbase-as-a-service-at-yahoo
原创文章,转载请注明: 转载自 Binospace
本文链接地址: http://www.binospace.com/index.php/the-hbase-isolation-technology/
文章的脚注信息由WordPress的wp-posturl插件自动生成
相关推荐
HBase技术介绍.docx
hbase技术分享 hbase技术分享 hbase技术分享 hbase技术分享
阿里巴巴高级技术专家讲述高可用HBase的技术实践的案例
本专刊由中国HBase技术社区整理,一共156页,包含HBase案例、组件、技术、平台等方面的介绍,详情参见https://www.iteblog.com/archives/2496.html
一、 HBase技术介绍 HBase简介 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源...
NULL 博文链接:https://cjb.iteye.com/blog/1939680
阿里云ApsaraDB-HBase产品技术文档,对阿里云HBase了解有帮忙
第二部分,对Hbase进行基本的概述,主要介绍其中基本原理,第三部分对Hbase的技术进行详解,包括关键成员和技术优化。第四部分,通过一个小的java api案例,介绍Hbase的开发使用,详细分析hbase的应用场景和优化方式...
基于HBase的分布式空间数据库技术,利用Hbase构建分布式空间数据库
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
HBase冷热分离技术方案.pdf
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
HBase大数据技术原理与实践.pptx
搭建pinpoint需要的hbase初始化脚本hbase-create.hbase
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用...
1. HBase有哪些基本的特征? 1 HBase特征: 1 2. HBase相对于关系数据库能解决的问题是什么? 2 HBase与关系数据的区别? 2 HBase与RDBMS的区别? 2 3. HBase的数据模式是怎么样的?即有哪些元素?如何存储?等 3 1...
HBASE技术架构及应用介绍.pdf
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBASE技术架构及应用介绍.pptx