一种基于HBase的海量文件离线分区管理方法技术

技术编号:21059937 阅读:26 留言:0更新日期:2019-05-08 06:49
本发明专利技术公开了一种基于HBase的海量文件离线分区管理方法,属于计算机领域。首先用户创建自定义的存储桶,加载关于桶的分区规则配置;按照桶的分区规则,给用户即将写入的小文件设定存储分区表的名称;然后按照业务需求和HBase数据存储的规则,为用户即将写入的小文件设计指定在存储分区表中的Rowkey,以RowKey作为每个小文件的唯一标示,自动将小文件写入当前时间段下的该桶的存储分区表中。最后用户指定该存储逻辑单元‑桶的数据存储空间配额和时间配额,系统根据空间配额和时间配额的限定定期对存储分区表的数据进行离线管理;同时系统离线预建下一时间段的存储分区表。本发明专利技术具有很强的实用性,具有很广泛的应用前景。

【技术实现步骤摘要】
一种基于HBase的海量文件离线分区管理方法
本专利技术属于计算机领域,具体是一种基于HBase的海量文件离线分区管理方法。
技术介绍
分布式存储作为当前大数据时代的数据存储应用方式被广泛认可,具体是通过硬件设备的横向扩展来完成对海量亿万级别数据的存储应用。HDFS作为分布式文件存储系统的成熟产品被广泛应用,而基于HDFS存储的HBase非结构化存储以其列式存储、亿万级别秒级响应等超强性能也已被广泛应用到海量数据业务。数据存储的可靠性已能得到保证,不过在面临海量超高流量的数据业务时,对于数据的管理却不能仅仅依靠HBase产品的固有特性。对于HBase来说,在存储性能上单表上亿级别并非难事,查询响应速度也是极快。但硬件设备容量毕竟有限,如果将所有数据都入库到HBase一张或几张表中,会造成单表数据量过大。当数据量增大到接近磁盘容量时,就需要清理部分数据,此时如果依赖HBase为表设定的TTL功能,过期的数据将会被标记删除,然后在下一次majorcompact时进行清理。从数据过期到标记删除到磁盘释放整个周期大概在7-15天时间,可见这种数据清理方式不能保证磁盘的及时释放,时间并不可控。而数据清理如果采用直接删除存储表的方式,磁盘将会在分钟级内被释放;系统运行不够平稳。
技术实现思路
本专利技术为海量文件的存储管理提供了切实可行的离线分区管理技术,主要包括海量文件的存储分区技术、文件存储分区的空间配额离线管理技术和文件存储分区的时间配额离线管理技术;具体是一种基于HBase的海量文件离线分区管理方法。具体步骤如下:步骤一、用户创建自定义的存储桶,并加载关于桶的分区规则配置;存储桶包括桶的元数据信息表,桶的元数据信息表包括:桶名,创建日期,空间配额,时间配额,分区规则等,同时也包含存储分区详情表及Region预分区数;桶的分区规则为day或month或year,分别代表分区规则为按天、按月和按年对桶进行分区;每个桶内都包括若干存储分区表。步骤二、按照桶的分区规则,给用户即将写入的小文件设定存储分区表的名称;将文件写入的当前时间进行格式化后,拼写上桶的名称与下划线,组成该小文件预备写入的存储分区表的名称。步骤三、按照业务需求和HBase数据存储的规则,为用户即将写入的小文件设计指定在存储分区表中的Rowkey;业务需求和HBase数据存储的规则包括:尽量避免某服务节点发生热点访问,尽量将数据分散到各个服务节点保证写入性能等等。Rowkey的计算方法为:根据用户写入的文件ID计算文件的hash码,并利用字符串格式化补位至4位16进制数,拼上下划线及文件名称,作为该小文件在存储分区表中的Rowkey;步骤四、根据用户小文件的当前入库时间和指定的桶的名称,以RowKey作为每个小文件的唯一标示,自动将小文件写入当前时间段下的该桶的存储分区表中。在离线情况下系统自动创建下一时间段的存储分区表,保证下一时间段的文件写入正常。步骤五、用户指定该存储逻辑单元-桶的数据存储空间配额和时间配额,系统根据空间配额和时间配额的限定定期对存储分区表的数据进行离线管理;离线管理包括删除超出空间配额和时间配额的部分储存分区表;具体包括如下:首先,用户根据桶的分区规则在当前时间段即将结束下一时间段尚未到来之时,利用桶空间配额的限定对桶的存储分区进行离线管理;具体步骤为:步骤501、离线任务从桶的元数据信息中获取该桶的空间配额限制值;用户在创建桶之初或使用过程中指定桶的空间配额大小,即限制整个存储桶占用的磁盘空间大小,以保证整个系统资源的合理分配。步骤502、判断桶的空间配额值是否为-1,如果是,离线任务不对桶的存储分区表作任何操作;否则,从桶的元数据信息中获取桶当前所有的存储分区表;步骤503、将存储分区表按时间由早到晚排序后开始遍历操作;步骤504、离线任务判断所有存储分区表占用的空间总值是否超过桶的空间配额值,如果是,进入步骤505;否则,停止遍历结束。步骤505、逐步删除最早的存储分区表的数据释放空间,直到所有存储分区表的空间占用总值小于该桶的空间配额限定值,停止遍历结束。然后,用户根据桶的分区规则在当前时间段即将结束下一时间段尚未到来之时,利用桶时间配额的限定对桶的存储分区进行离线管理;具体为:步骤I、离线任务从桶的元数据信息中获取该桶的时间配额限制值;用户在创建桶之初或使用过程中指定桶的时间配额大小;步骤II、判断桶的时间配额值是否为-1,如果是,离线任务不对桶的存储分区表作任何操作;否则,从桶的元数据信息中获取桶当前所有的存储分区表;步骤III、将存储分区表按时间由早到晚排序后开始遍历操作;步骤IV、离线任务根据桶的分区规则,计算在桶的时间配额范围内,桶的存储分区表的数量是否超出该时间范围内设定的分区表数量的阈值,如果是,进入步骤V;否则,停止遍历结束。步骤V、将超出时间范围的较早的存储分区表的数据删除,保留时间配额值的存储分区表;停止遍历结束。步骤六、同时系统离线预建下一时间段的存储分区表。离线任务根据桶的分区规则,将当前时间加上了分区时间段,将得到的时间进行格式化;然后将格式化后的时间拼上桶名加下划线作为下一时间段存储分区表的名称,在下一分区时间段到来之前根据Region预分区数创建好存储分区表。本专利技术的优点在于:1)、一种基于HBase的海量文件离线分区管理方法,在HBase进行数据存储的过程中,将逻辑存储单元桶进行按天或月或年等分区,数据将存储在对应时间的存储分区表中。同时可以为存储桶设定空间配额值和时间配额值,通过离线管理的方式对于存储分区表的删除将能够及时释放存储空间保证系统运行平稳资源合理利用。2)、一种基于HBase的海量文件离线分区管理方法,在大数据海量文件存储领域具有很强的实用性和应用范围,具有很广泛的应用前景。附图说明图1为本专利技术基于HBase的海量文件离线分区管理方法原理图;图2为本专利技术的文件分区存储结构示意图及桶元数据信息;图3为本专利技术基于HBase的海量文件离线分区管理方法流程图;图4为本专利技术离线删除超出空间配额的部分储存分区表流程图;图5为本专利技术离线删除超出时间配额的部分储存分区表流程图;图6为本专利技术离线创建分区流程图。具体实施方案下面将结合附图和实施例对本专利技术作进一步的详细说明。本专利技术提供了一种基于HBase的海量文件离线分区管理方法,使用HBase作为海量文件存储分区管理的引擎,使用HDFS作为文件分布式存储的引擎;包含海量文件的存储分区、文件存储分区的空间配额离线管理和时间配额离线管理。海量文件存储分区是将文件按照桶分区规则写入指定存储分区表中以实现文件的分区存储和管理。文件存储分区的空间配额离线管理,是根据桶空间配额的限定离线管理桶的存储分区。文件存储分区的时间配额离线管理,是根据桶的时间配额的限定离线管理桶的存储分区。如图1所示,首先用户针对存储逻辑单元-桶指定分区规则,在文件写入时系统将根据文件入库的当前时间和存储桶的分区规则判断文件实际写入的存储分区表。同时用户可以指定该存储逻辑单元-桶的数据存储空间配额和时间配额,系统根据配额的限定对存储分区表的数据进行离线管理,删除超出配额的部分储存分区表以及预建下一时间段的存储分区表。如图3所示,具体步骤如下:步骤一、用户创建自定义的存储桶,本文档来自技高网...

【技术保护点】
1.一种基于HBase的海量文件离线分区管理方法,其特征在于,具体步骤如下:步骤一、用户创建自定义的存储桶,并加载关于桶的分区规则配置;步骤二、按照桶的分区规则,给用户即将写入的小文件设定存储分区表的名称;将文件写入的当前时间进行格式化后,拼写上桶的名称与下划线,组成该小文件预备写入的存储分区表的名称;步骤三、按照业务需求和HBase数据存储的规则,为用户即将写入的小文件设计指定在存储分区表中的Rowkey;步骤四、根据用户小文件的当前入库时间和指定的桶的名称,以RowKey作为每个小文件的唯一标示,自动将小文件写入当前时间段下的该桶的存储分区表中;在离线情况下系统自动创建下一时间段的存储分区表,保证下一时间段的文件写入正常;步骤五、用户指定该存储逻辑单元‑桶的数据存储空间配额和时间配额,系统根据空间配额和时间配额的限定定期对存储分区表的数据进行离线管理;离线管理包括删除超出空间配额和时间配额的部分储存分区表;用户根据桶的分区规则在当前时间段即将结束下一时间段尚未到来之时,利用桶空间配额或者时间配额的限定对桶的存储分区分别进行离线管理;步骤六、同时系统离线预建下一时间段的存储分区表;离线任务根据桶的分区规则,将当前时间加上了分区时间段,将得到的时间进行格式化;然后将格式化后的时间拼上桶名加下划线作为下一时间段存储分区表的名称,在下一分区时间段到来之前根据Region预分区数创建好存储分区表。...

【技术特征摘要】
1.一种基于HBase的海量文件离线分区管理方法,其特征在于,具体步骤如下:步骤一、用户创建自定义的存储桶,并加载关于桶的分区规则配置;步骤二、按照桶的分区规则,给用户即将写入的小文件设定存储分区表的名称;将文件写入的当前时间进行格式化后,拼写上桶的名称与下划线,组成该小文件预备写入的存储分区表的名称;步骤三、按照业务需求和HBase数据存储的规则,为用户即将写入的小文件设计指定在存储分区表中的Rowkey;步骤四、根据用户小文件的当前入库时间和指定的桶的名称,以RowKey作为每个小文件的唯一标示,自动将小文件写入当前时间段下的该桶的存储分区表中;在离线情况下系统自动创建下一时间段的存储分区表,保证下一时间段的文件写入正常;步骤五、用户指定该存储逻辑单元-桶的数据存储空间配额和时间配额,系统根据空间配额和时间配额的限定定期对存储分区表的数据进行离线管理;离线管理包括删除超出空间配额和时间配额的部分储存分区表;用户根据桶的分区规则在当前时间段即将结束下一时间段尚未到来之时,利用桶空间配额或者时间配额的限定对桶的存储分区分别进行离线管理;步骤六、同时系统离线预建下一时间段的存储分区表;离线任务根据桶的分区规则,将当前时间加上了分区时间段,将得到的时间进行格式化;然后将格式化后的时间拼上桶名加下划线作为下一时间段存储分区表的名称,在下一分区时间段到来之前根据Region预分区数创建好存储分区表。2.如权利要求1所述的一种基于HBase的海量文件离线分区管理方法,其特征在于,步骤一中所述的存储桶包括桶的元数据信息表,桶的元数据信息表包括:桶名,创建日期,空间配额,时间配额以及分区规则,同时也包含存储分区详情表及Region预分区数;桶的分区规则为day或month或year,分别代表分区规则为按天、按月和按年对桶进行分区;每个桶内都包括若干存储分区表。3.如权利要求1所述的一种基于HBase的海量文件离线分区管理方法,其特征在于,步骤三中所述的业务需求和HBase数据存储的规则包括:尽量避免某服务节...

【专利技术属性】
技术研发人员:李斌斌王振宇苏连超
申请(专利权)人:北京赛思信安技术股份有限公司
类型:发明
国别省市:北京,11

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

1