一种基于HBase压缩方法技术

技术编号:9926477 阅读:116 留言:0更新日期:2014-04-16 17:53
本发明专利技术提供一种基于HBase压缩方法,其具体实现过程为:部署分布式集群;获取HBase表文件路径;通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数。该一种基于HBase压缩方法和现有技术相比,可以减少数据的存储空间,大大减少数据处理时间,提高数据处理效率,能使集群保存更多的数据,延长集群的使用寿命;实用性强,易于推广。

【技术实现步骤摘要】
【专利摘要】本专利技术提供,其具体实现过程为:部署分布式集群;获取HBase表文件路径;通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数。该和现有技术相比,可以减少数据的存储空间,大大减少数据处理时间,提高数据处理效率,能使集群保存更多的数据,延长集群的使用寿命;实用性强,易于推广。【专利说明】—种基于HBase压缩方法
本专利技术涉及计算机应用
,具体的说是。
技术介绍
随着计算机技术及互联网技术的飞速发展,信息数据量呈现爆炸式地增长。因此,对大型数据集进行高效查询存储是当今的热点,随着大数据技术的不断成熟,分布式数据库应运而生,它能提供高并发访问及稳定可靠的性能。HBase是Hadoop上的一个NoSQL数据库的实现,它是分布式的、面向列存储的数据库。在文件归档中,压缩技术是非常重要的,因此,HBase中关键技术之一的研究压缩方法是研究的重要方向,因此,提出该专利技术提出。目前HBase支持的常用压缩算法有Gzip、Lzo、Snappy。不同的场合使用不同的压缩算法。Gzip是比较消耗CPU的,压缩率最高,压缩和解压速度较慢,Gzip不能被分块并行处理;Lzo的压缩率居中,比Gzip低一些,但压缩和解压速度要比Gzip快,其中解压速度更快,CPU消耗的比Gzip少。Snappy的压缩率最低,而压缩和解压速度要稍微比Lzo要快一些。Gzip算法的基本原理是对要压缩的文件首先使用1ζ77算法进行压缩,然后将得到的结果使用Huffman编码的方法进行压缩。Lzo算法是和1ζ77类似的基于字典思想的一种压缩算法,同时也使用固定长度的互动窗口用于缓存字典信息。Lzo与1ζ77不同的是1ζ77使用的是固定长度压缩,Lzo的压缩长度是可变的,1ζ77压缩时需要在滑动窗口内对压缩数据做最大压缩匹配字符串的搜索,滑动窗口越大搜索消耗的时间越长,这是1ζ77算法压缩很慢的原因之一,而Lzo算法是使用哈希映射的查找方式查找匹配的字符串,这使得Lzo的压缩速率提高了很多。Lzo算法优点是解压速度快,不需要额外的内存,支持重复压缩以及原地解压。在HBase中列中存储的数据是有相同属性的数值,根据局部相关性原理,列中的数据具有重复性。针对HBase列存储数据库是按列存储的,且每个列中的相邻值有极高的相似概率,可以将列中的值定义为一个编码单元,对列中的值相同的单元进行压缩,基于此,现提出一种可以提高数据压缩率、并能有很好的解压效果、基于HBase的压缩方法。
技术实现思路
本专利技术的技术任务是解决现有技术的不足,提供。本专利技术的技术方案是按以下方式实现的,该,其具体实现过程为: 一、部署分布式集群; 二、获取HBase表文件路径; 三、通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值; 四、对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数,其中每一列中的列属性值与rowkey位置信息作为压缩条件,然后根据特定列中属性值的重复次数记录压缩态数据。所述压缩接口由编解码器提供,其具体压缩过程为:通过压缩接口对写入的数据进行压缩,将其以压缩格式写入底层的流中;对读取的数据进行解压来完成,调用压缩接口,获得一个压缩输入流,从而从底层的流中读取未压缩的数据。所述编解码器设置到配置文件中的i0.compression, codecs属性上,其具体设置过程为:将该压缩方法声明到配置文件中,在i0.compression, codecs属性上填写该方法的codecs,对于不同的压缩文件利用CompressionCodecFactory提供的getCodec方法将文件的扩展名映射到相应的CompressionCodecs ;CompressionCodecFactory从i0.compression, codecs配置属性定义的列表中获取编解码器;同时还需将压缩算法添加到Hadoop系统中,完成集群的正常工作。本专利技术与现有技术相比所产生的有益效果是: 本专利技术的对列中相同的属性值进行压缩,提高数据压缩率,并能有很好的解压效果,可以减少数据的存储空间,大大减少数据处理时间,提高数据处理效率,能使集群保存更多的数据,延长集群的使用寿命;实用性强,易于推广。【专利附图】【附图说明】附图1本专利技术的压缩流程图。附图2实施例中HBase表的结构及数据示例图。附图3是实施例中Cl列族中压缩数据间的连接操作示意图。附图4是实施例中Cl列族中age列压缩数据与c2列族非压缩数据中width列间连接操作。【具体实施方式】下面结合附图对本专利技术的作以下详细说明。在HBase系统中,有的文件是经常被访问的,这样时间性能是比较重要的,而还有一些文件是属于不常被访问的,如归档文件。根据HBase中列存储的数据块中属性值有很高的重复率,该HBase压缩方法是对轻量级压缩算法的改进,将列的属性值重复的进行压缩,注重压缩率,节约磁盘空间。如附图1所示,本专利技术提供的,其具体实现过程为: 一、部署分布式集群; 二、获取HBase表文件路径; 三、通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值; 四、对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数,其中每一列中的列属性值与rowkey位置信息作为压缩条件,然后根据特定列中属性值的重复次数记录压缩态数据。在压缩方法中需要有一个编码器及一个解码器。在编解码器中,可以根据Hadoop中提供的一个压缩接口 CompressionCodec,该压缩接口是根据Hadoop中提供的标准压缩接口进行实现,然后通过该接口来完成压缩和解压。该过程通过对写入的数据进行压缩,对读取的数据进行解压来完成:在压缩过程中,是对于写入的数据进行压缩,使用接口中自带的CreateOutPutStream方法创建未压缩的数据写入这个数据流中,该方法中的参数是OutPutStream,将其以压缩格式写入底层的流中。在解压的过程中,调用接口中的CreateOutPutStream方法,获得一个压缩输入流,从而从底层的流中读取未压缩的数据。然后将该压缩方法的编解码器设置到配置文件中的i0.compression, codecs属性上:在i0.compression, codecs属性上填写该方法的codecs,对于不同的压缩文件可以利用CompressionCodecFactory提供的getCodec方法将文件的扩展名映射到相应的CompressionCodecsο CompressionCodecFactory 从 i0.compression, codecs 配置属性定义的列表中获取编解码器。在HBase中,数据是存储在Hadoop的分布式文件系统HDFS中的,因此,在修改HBase的数据压缩类的代码的同时,还需将压缩算法添加到Hadoop系统中,这样才能是整个集群的工作正常。若要注册实现的或外部的编解码器,通过在配置文件中设置属性值即可。在HBase数据库压缩态数据中可以对数本文档来自技高网
...

【技术保护点】
一种基于HBase压缩方法,其特征在于其具体实现过程为:一、部署分布式集群;二、获取HBase表文件路径;三、通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;四、对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数,其中每一列中的列属性值与rowkey位置信息作为压缩条件,然后根据特定列中属性值的重复次数记录压缩态数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:宗栋瑞郭美思
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1