`

[Binospace] HBase隔离技术

阅读更多

背景:

随着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相关信息的管理。具体可以参见下图:
GroupInfoManager维护了<Group,Table> <Group,RS>之间的映射关系,借助于Coprocessor机制的Observer接口,实现从HMaster到GroupInfo信息的管理{增、删、改}。
GroupBasedLoadBalancer重新实现了HMaster的LoadBalancer接口,每次Region的移动都按照Table-Group,Group-RS的方式进行。
 
RegionServerGroup的扩展:
1)针对RSG配置不同的系统参数的功能。RegionServer上不同的参数配置,会影响其Table的性能,如果可以根据区分table的RSG来配置,就可以根据Table的需求进行有针对性的设置。例如对于读性能要求较高的应用,可以设置hfile.block.cache.size稍微大一些,增大Cache在JVM HeapSize所占的比重。
2)提供备用RSG,可以动态调整该分组的RS到资源需求最为紧张的RSG等。该方法需要有一个较为客观公平的资源评估算法,能够快速评估出读写负载与资源分配的平衡性。

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**,全称为Hadoop Database,是一款构建在Hadoop之上、面向列的分布式数据库系统。它具备高可靠性、高性能和可扩展性等特点,能够在成本相对低廉的硬件设备上构建大...

    (转)HBase技术介绍

    【HBase技术介绍】 HBase,全称是Apache HBase,是一个分布式的、面向列的开源数据库,基于Google的Bigtable设计思想构建于Hadoop文件系统(HDFS)之上。它是Apache软件基金会Hadoop项目的一部分,专为处理大规模...

    2018 Apache HBase 技术实战专刊

    HBase作为一款高性能、支持无限水平扩展的在线...综上所述,2018 Apache HBase 技术实战专刊详细介绍了HBase的多个方面,包括其生态、组件、应用场景、技术细节、运维实践等,旨在为HBase爱好者提供全面的技术参考。

    分布式存储系统HBase关键技术研究.pdf

    "分布式存储系统HBase关键技术研究" HBase是一个面向列的非关系型的开源分布式存储系统,它基于Hadoop HDFS文件存储系统,使用MapReduce来处理海量数据,利用Zookeeper作为协同服务。HBase使用简单的键值对映像关系...

    ApsaraDB-HBase产品技术文档

    本技术文档将详细介绍ApsaraDB-HBase的核心特性、架构、关键技术点以及如何进行高效的数据管理和操作。 核心特性方面,ApsaraDB-HBase具备高度的可扩展性,能够在不牺牲性能的前提下,支持PB级别的数据存储和每秒...

    阿里云 专有云企业版 V3.8.1 云数据库HBase版 技术白皮书 20190910

    阿里云专有云企业版V3.8.1云数据库HBase版技术白皮书 阿里云专有云企业版V3.8.1云数据库HBase版技术白皮书是阿里云发布的一份关于云数据库HBase版的技术白皮书。该白皮书详细介绍了云数据库HBase版的技术架构、应用...

    HbaseTemplate 操作hbase

    在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...

    hbase技术分享

    HBase技术分享主要涉及到HBase的基本概念、操作、数据模型设计以及表属性配置等多个方面的知识点。接下来,将对HBase的核心知识点进行详细解读。 首先,HBase是一个开源的、分布式的、列式存储的非关系型数据库,它...

    基于HBase的分布式空间数据库技术

    基于HBase的分布式空间数据库技术是针对大型地理信息系统(GIS)中海量空间数据存储与高效查询的问题提出的一种解决方案。随着地理信息系统技术的迅速发展,数据的时间和空间精度不断提高,同时,GIS系统面临着数据...

    2018HBase技术总结

    HBase作为一款开源的分布式NoSQL数据库,自2018年以来经历了显著的技术演进和生态系统扩展。它最早是受Google BigTable论文的启发而开发的,具有分布式、多版本、面向列的特点。HBase特别适合存储非结构化数据,比如...

    Hbase技术介绍

    ### HBase技术深入解析 #### 引言 HBase,作为大数据领域中一款重要的分布式数据库系统,基于Hadoop生态系统构建,旨在提供高可靠、高性能的数据存储与查询服务。本文将全面解析HBase的核心概念、技术架构及应用...

    HBase技术参考手册.docx

    《HBase技术参考手册》是深入理解这一分布式列式存储系统的宝贵资源。HBase源于Google的Bigtable论文,旨在为大规模结构化数据提供高吞吐量的随机读写能力。以下将详细介绍HBase的关键概念、特性及其在实际场景中的...

    大数据技术基础实验报告-HBase安装配置和应用实践.doc

    【大数据技术基础实验报告-HBase安装配置和应用实践】 这篇实验报告主要涵盖了HBase的安装、配置以及基本应用,这是大数据技术中一个重要的组件,它是一个分布式的、面向列的数据库,尤其适合处理大规模的数据。 1...

    Hbase技术原理详解及案例分析

    第二部分,对Hbase进行基本的概述,主要介绍其中基本原理,第三部分对Hbase的技术进行详解,包括关键成员和技术优化。第四部分,通过一个小的java api案例,介绍Hbase的开发使用,详细分析hbase的应用场景和优化方式...

    hbase社区2018精选资料

    HBase社区2018精选资料的知识点涵盖了HBase生态系统的多个方面,包括HBase的基本概念、架构、组件、应用案例、技术实践、性能优化策略、新特性、平台实践以及社区动态等。HBase是一个高性能的开源NoSQL数据库,属于...

    HBase(hbase-2.4.9-bin.tar.gz)

    HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...

    大数据技术原理及应用课实验3 熟悉常用的HBase操作 林子雨实验

    【大数据技术原理及应用实验3:熟悉常用的HBase操作】 HBase是一种分布式、列式存储的NoSQL数据库,它是构建在Hadoop文件系统(HDFS)之上的,用于处理大规模数据集的应用。在Hadoop生态体系中,HBase提供实时读写...

    Hbase权威指南(HBase: The Definitive Guide)

    通过上述内容可以看出,《HBase权威指南》全面而深入地介绍了HBase的相关知识和技术要点,无论是对于初次接触HBase的新手还是想要深入了解其内部机制的资深开发者来说,都是一本不可多得的好书。该书不仅详细解释了...

Global site tag (gtag.js) - Google Analytics