一种基于HBase高扩展性数据库设计方法技术

技术编号:11808964 阅读:73 留言:0更新日期:2015-08-01 01:03
本发明专利技术公开了一种基于多节点备份的HBase数据高并发访问的方法,当HBase中存在长时间存在并鲜有更改的热点数据存在时,主动为热点数据制作两个及以上替身。当数据发生更改时,更改操作执行于数据本体,并将更改操作同步到各个替身。当读取数据时,主动将读取申请平衡地分配到各个替身数据所在节点,以保证数据读取的高并发性,减少热点数据成为瓶颈的可能,同时降低因为热点数据汇聚造成存储节点过热的可能性,从而提高数据的读写速度,保证系统的稳定性和性能。

【技术实现步骤摘要】

本专利技术属于大数据领域,更具体地涉及一种非关系数据库中热点数据的高并发读取的解决方案,尤其涉及一种基于HBase高扩展性的数据库设计方案。非关系型数据库是指有别于传统的关系型数据库的一种新型数据库,在海量数据存储、高并发访问支持等方面表现出很好的性能。HBase,也就是Hadoop Database,是一种基于列存储的非关系型数据库。HBase是Apache Hadoop的子项目,在Hadoop架构中处于结构化存储层:下层需要依托分布式文件系统HDFS ;为上层的MapReduce计算模块提供高性能、高可靠、高可扩展性、基于列存储的分布式存储系统。HBase可以存储结构化数据,也可以存储半结构化或者非结构化的数据。当前HBase采用数据单备份的存储策略,通过HReg1n分裂的方式来解决单个热点数据的问题。当数据较少更新时,由于数据无法达到分裂的要求,从而使得通过分裂的策略来解决热点数据不可实现。而热点数据造成数据读取的瓶颈使得整个系统的性能大幅度下降,而当热点数据在同一个存储节点聚集时,对该存储节点造成巨大压力,从而使得热点数据带来的负面影响大幅度扩大。
技术实现思路
本专利技术所要解决的技术问题是,提供一种能够解决热点数据造成读取瓶颈的基于HBase的数据高并发读取的方法。为了解决上述技术问题,本专利技术是通过以下技术方案来实现的: ,在HBase中存在热点数据时,首先为热点数据制作多份替身,并将替身转移与原始数据存储位置不同的多个不同存储节点上,依靠多个替身数据分布在不同节点的特性,放大热点的数据的并发性,减小原始节点的读取压力。进一步地,述HBase的数据节点写入并备份包括以下流程所述的热点数据处理包括以下步骤: (a)、探测HBase中热点数据。在一段时间内,某些特定的数据访问频度高,不会经常被修改,且能预测到接下来一段时间该数据的热度不会下降,这些数据将会被认定为热点数据; (b)、当热点数据选定之后,选择该数据所在节点之外的多个节点作为替身数据存储节点,将该数据同步到上述选定节点,并写入META表中以备查找数据时使用; (C)、当HBase收到查找该热点数据的命令时,从META表中可找到该热点数据原始位置和多个替身数据所在位置,将查找命令随机分配给替身数据所在节点; (d)、如果HBase收到对该热点数据的更新操作时,首先找到数据的原始位置,并在原始位置上的数据执行更新操作;在原始位置上的数据完成更新操作后,将该位置的数据同步其所有的替身数据。进一步地,所述步骤(b)和步骤(C)中热点数据的读操作包括以下步骤: (1)、首先尝试获取需要的锁; (2)、选取热点数据所在的存储节点之外的多个存储节点; (3)、将数据从原始节点同步到步骤(2)中选取的存储节点中; (4)、向META表中更新数据存在的位置信息; (5)、随后查找过程中,根据META表中信息找到替身数据位置; (6)、通过allocate方法把查找请求分配到相应的替身数据所在的位置。有益效果:与现有的技术相比,本专利技术的有益之处在于这种基于HBase的高扩展性数据库系统,最大程度降低了热点数据对数据库扩展性的限制。由于HBase是分布式系统,HBase的扩展性与数据节点的个数有较大的关系,当出现热点数据时,HBase性能并不会随着存储节点的增多而同步增长。而引入扩展性数据库方法之后,可以将热点数据分布到多个存储节点上,并可以通过热度来调整其替身的个数,通过提高热点数据的并发性来提高整个数据库系统的并发性,从而解决热点数据瓶颈的问题。【附图说明】: 下面结合附图对本专利技术进一步说明。图1是基于HBase的高扩展性数据库系统制作并迀移替身数据的示意图; 图2是基于HBase的高扩展性数据库系统热点数据读写操作图; 图3是基于HBase的高扩展性数据库系统中热点数据的查找图; 【具体实施方式】: 下面结合附图和【具体实施方式】对本专利技术进行详细描述。如图1所示,数据读取过程中先将数据读入内存中,当热点数据在同一个机器上汇聚时,内存并不足以装载所有的热点数据,导致数据不断地在内存中换入换出,从而导致数据读取效率低下。在引入高扩展性系统方法后,在热点数据集中的存储节点上的热点数据因为创建备份的缘故,在原节点上不再提供读取数据的服务,从而使得该热点数据在原始的节点上不再是热点数据。如图2所示,热点数据从原始节点上创建出多个替身数据并迀移到其他节点上之后,原始节点上的数据对外仅仅提供更新操作,替身数据对外提供读取操作,由于数据存储节点个数的增加,使得该热点数据的并发性得以增强。如图3所示,数据从ROOT表开始查找所需数据位置,可以找到多个替身数据所在节点的位置,基于HBase高扩展性数据库设计方法中热点数据的读操作包括以下步骤: (1)、首先尝试获取需要的锁; (2)、选取热点数据所在的存储节点之外的多个存储节点; (3)、将数据从原始节点同步到步骤(2)中选取的存储节点中; (4)、向META表中更新数据存在的位置信息; (5)、随后查找过程中,根据META表中信息找到替身数据位置 (6)、通过allocate方法把查找请求分配到相应的替身数据所在的位置最后要说明的是,本专利技术所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本专利技术并不局限于上面揭示和描述的【具体实施方式】,对本专利技术的一些修改和变更也应当落入本专利技术的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本专利技术构成任何限制。【主权项】1.,其特征在于在HBase中存在热点数据时,首先为热点数据制作多份替身,并将替身转移与原始数据存储位置不同的多个不同存储节点上,并主动平衡多个替身数据之间的读取请求;在原始数据发生更改时,主动同步各个替身数据。2.根据权利要求1所述的,其特征在于所述的热点数据处理包括以下步骤: (a)探测HBase中热点数据,在一段时间内,某些特定的数据访问频度高,不会经常被修改,且能预测到接下来一段时间该数据的热度不会下降,这些数据将会被认定为热点数据; (b)当热点数据选定之后,选择该数据所在节点之外的多个节点作为替身数据存储节点,将该数据同步到上述选定节点,并写入META表中以备查找数据时使用; (c)当HBase收到查找该热点数据的命令时,从META表中可找到该热点数据原始位置和多个替身数据所在位置,将查找命令随机分配给替身数据所在节点; Cd)如果HBase收到对该热点数据的更新操作时,首先找到数据的原始位置,并在原始位置上的数据执行更新操作;在原始位置上的数据完成更新操作后,将该位置的数据同步其所有的替身数据。3.根据权利要求2所述的热点数据处理,其特征在于所述步骤(b)和步骤(c)中数据的读操作包括以下步骤: (1)首先尝试获取需要的锁; (2)选取热点数据所在的存储节点之外的多个存储节点; (3)将数据从原始节点同步到步骤(2)中选取的存储节点中; (4)向META表中更新数据存在的位置信息; (5)随后查找过程中,根据META表中信息找到替身数据位置; (6)通过allocate方法把查找请求分配到相应的替身数据所在的位置本文档来自技高网...

【技术保护点】
一种基于HBase高扩展性数据库设计方法,其特征在于在HBase中存在热点数据时,首先为热点数据制作多份替身,并将替身转移与原始数据存储位置不同的多个不同存储节点上,并主动平衡多个替身数据之间的读取请求;在原始数据发生更改时,主动同步各个替身数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨峰周学海庄航卢坤李昌龙孙明明
申请(专利权)人:苏州星熙数据科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1