一种HBase读写时序性数据的方法及系统技术方案

技术编号:14875710 阅读:50 留言:0更新日期:2017-03-23 23:18
一种HBase读写时序性数据的方法,其能够实现读写数据的请求在服务器之间是负载均衡的。这种HBase读写时序性数据的方法,包括:(1)规划分区数量;(2)在HBase里为表预创建分区;(3)在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;(4)读取数据时,根据所有的分区值,形成新的迭代器,读取数据。还有一种HBase读写时序性数据的系统。

【技术实现步骤摘要】

本专利技术涉及大数据处理的
,尤其涉及一种HBase读写时序性数据的方法,以及HBase读写时序性数据的系统。
技术介绍
HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(FileSystem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。在HBase存入时序性数据的情况下,每行数据是一个时间点的数据。要读取一段时间范围内的数据,需要依次查询多行数据。HBase表的主键设计需要将时间作为第一主键。查询时设定起始键和终止键为两个时间点,两个时间点内的数据将被查询出来。HBase表的主键是按照字典序排序的,表按照主键的取值范围分为多个分区。最新的数据写入的时候,会写入到一个分区中。由于一个分区由一个服务器管理,本台服务器将成为热点,而其他分区和服务器没有数据写入,处于空闲状态。因此,原生的HBase读写数据的API,在读写时序性数据的时候,会导致热点分区,热点服务器,造成读写数据的请求在服务器之间是负载不均衡的。
技术实现思路
为克服现有技术的缺陷,本专利技术要解决的技术问题是提供了一种HBase读写时序性数据的方法,其能够实现读写数据的请求在服务器之间是负载均衡的。本专利技术的技术方案是:这种HBase读写时序性数据的方法,该方法包括以下步骤:(1)规划分区数量;(2)在HBase里为表预创建分区;(3)在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;(4)读取数据时,根据所有的分区值,形成新的迭代器,读取数据。本专利技术通过规划分区数量,在HBase里为表预创建分区,在写入数据之前,计算出分区值,并且修改数据主键,读取数据时,根据所有的分区值,形成新的迭代器,读取数据,因此能够实现读写数据的请求在服务器之间是负载均衡的。还提供了一种HBase读写时序性数据的系统,该系统包括:规划模块,其配置来规划分区数量;创建模块,其配置来在HBase里为表预创建分区;数据写入模块,其配置来在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;数据读取模块,其配置来读取数据时,根据所有的分区值,形成新的迭代器,读取数据。附图说明图1所示为根据本专利技术的HBase读写时序性数据的方法的流程图。具体实施方式如图1所示,这种HBase读写时序性数据的方法,该方法包括以下步骤:(1)规划分区数量;(2)在HBase里为表预创建分区;(3)在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;(4)读取数据时,根据所有的分区值,形成新的迭代器,读取数据。本专利技术通过规划分区数量,在HBase里为表预创建分区,在写入数据之前,计算出分区值,并且修改数据主键,读取数据时,根据所有的分区值,形成新的迭代器,读取数据,因此能够实现读写数据的请求在服务器之间是负载均衡的。另外,所述步骤(1)中,分区数量是HBase服务器数量的倍数。这样有利于每台服务器上读写量均衡。另外,所述步骤(2)中,当分区数为M时,M为大于1的整数,取0、1……M-1的值,类型为byte,作为切分键,对HBase表进行切分,切分出M个分区。另外,所述步骤(3)中,根据时序数据的主键,计算其hashcode,将hashcode取绝对值后,与分区数取模,得到分区值。另外,所述步骤(3)中,修改每条时序数据的主键值时,源主键是一个byte数组;生成一个新的byte数组,长度是源数组的长度加1;将新数组的第一位赋予分区值;新数组其他位,依次由源数组每一位赋值;新数组作为新的主键,写入HBase。假设分区数是M。对于写入的时序性数据,分区值是比较均匀的分布在0与M-1之间的。所以数据会比较均匀的写入不同的分区。另外,所述步骤(4)中,读取一段时间范围内的数据,起始键是开始时间,终止键是结束时间;取出所有的分区值0到M-1,类型为byte;根据每一个分区值,依次构建新的起始键和终止键;构建方式为将分区值放到起始键byte数组的第一位、终止键byte数组的第一位,根据新的起始键和终止键,构建M个扫描器Scanner;每个Scanner读取数据后,将获取到的主键转变成原始主键,去掉第一位byte分区值,然后将原始主键进行字典排序,根据字典序由小到大返回。而且,可以封装成API,在写入数据和读取数据之前,计算出分区值,并且修改数据主键。读取数据时,根据所有的分区值,形成新的迭代器,读取数据。API供其他程序访问HBase时使用。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本专利技术的方法相对应的,本专利技术还同时包括一种HBase读写时序性数据的系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统包括:规划模块,其配置来规划分区数量;创建模块,其配置来在HBase里为表预创建分区;数据写入模块,其配置来在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;数据读取模块,其配置来读取数据时,根据所有的分区值,形成新的迭代器,读取数据。另外,所述规划模块中,分区数量是HBase服务器数量的倍数。另外,所述创建模块中,当分区数为M时,M为大于1的整数,取0、1……M-1的值,类型为byte,作为切分键,对HBase表进行切分,切分出M个分区。另外,所述数据写入模块中,根据时序数据的主键,计算其hashcode,将hashcode取绝对值后,与分区数取模,得到分区值;修改每条时序数据的主键值时,源主键是一个byte数组;生成一个新的byte数组,长度是源数组的长度加1;将新数组的第一位赋予分区值;新数组其他位,依次由源数组每一位赋值;新数组作为新的主键,写入HBase。另外,所述数据读取模块中,读取一段时间范围内的数据,起始键是开始时间,终止键是结束时间;取出所有的分区值0到M-1,类型为byte;根据每一个分区值,依次构建新的起始键和终止键;构建方式为将分区值放到起始键byte数组的第一位、终止键byte数组的第一位,根据新的起始键和终止键,构建M个扫描器Scanner;每个Scanner读取数据后,将获取到的主键转变成原始主键,去掉第一位byte分区值,然后将原始主键进行字典排序,根据字典序由小到大返回。以上所述,仅是本专利技术的较佳实施例,并非对本专利技术作任何形式上的限制,凡是依据本专利技术的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本专利技术技术方案的保护范围。本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201611021640.html" title="一种HBase读写时序性数据的方法及系统原文来自X技术">HBase读写时序性数据的方法及系统</a>

【技术保护点】
一种HBase读写时序性数据的方法,其特征在于:该方法包括以下步骤:(1)规划分区数量;(2)在HBase里为表预创建分区;(3)在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;(4)读取数据时,根据所有的分区值,形成新的迭代器,读取数据。

【技术特征摘要】
1.一种HBase读写时序性数据的方法,其特征在于:该方法包括以下步骤:(1)规划分区数量;(2)在HBase里为表预创建分区;(3)在写入数据之前,计算出分区值,并且修改数据主键,写入HBase;(4)读取数据时,根据所有的分区值,形成新的迭代器,读取数据。2.根据权利要求1所述的HBase读写时序性数据的方法,其特征在于:所述步骤(1)中,分区数量是HBase服务器数量的倍数。3.根据权利要求2所述的HBase读写时序性数据的方法,其特征在于:所述步骤(2)中,当分区数为M时,M为大于1的整数,取0、1……M-1的值,类型为byte,作为切分键,对HBase表进行切分,切分出M个分区。4.根据权利要求3所述的HBase读写时序性数据的方法,其特征在于:所述步骤(3)中,根据时序数据的主键,计算其hashcode,将hashcode取绝对值后,与分区数取模,得到分区值。5.根据权利要求4所述的HBase读写时序性数据的方法,其特征在于:所述步骤(3)中,修改每条时序数据的主键值时,源主键是一个byte数组;生成一个新的byte数组,长度是源数组的长度加1;将新数组的第一位赋予分区值;新数组其他位,依次由源数组每一位赋值;新数组作为新的主键,写入HBase。6.根据权利要求5所述的HBase读写时序性数据的方法,其特征在于:所述步骤(4)中,读取一段时间范围内的数据,起始键是开始时间,终止键是结束时间;取出所有的分区值0到M-1,类型为byte;根据每一个分区值,依次构建新的起始键和终止...

【专利技术属性】
技术研发人员:范卫卫张翼温宗臣何良均
申请(专利权)人:北京集奥聚合科技有限公司
类型:发明
国别省市:北京;11

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

1