CN103729429A - 一种基于HBase压缩方法 - Google Patents
一种基于HBase压缩方法 Download PDFInfo
- Publication number
- CN103729429A CN103729429A CN201310728845.8A CN201310728845A CN103729429A CN 103729429 A CN103729429 A CN 103729429A CN 201310728845 A CN201310728845 A CN 201310728845A CN 103729429 A CN103729429 A CN 103729429A
- Authority
- CN
- China
- Prior art keywords
- compression
- data
- hbase
- column
- compressed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于HBase压缩方法,其具体实现过程为:部署分布式集群;获取HBase表文件路径;通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数。该一种基于HBase压缩方法和现有技术相比,可以减少数据的存储空间,大大减少数据处理时间,提高数据处理效率,能使集群保存更多的数据,延长集群的使用寿命;实用性强,易于推广。
Description
技术领域
本发明涉及计算机应用技术领域,具体的说是一种基于HBase压缩方法。
背景技术
随着计算机技术及互联网技术的飞速发展,信息数据量呈现爆炸式地增长。因此,对大型数据集进行高效查询存储是当今的热点,随着大数据技术的不断成熟,分布式数据库应运而生,它能提供高并发访问及稳定可靠的性能。HBase是Hadoop上的一个NoSQL数据库的实现,它是分布式的、面向列存储的数据库。在文件归档中,压缩技术是非常重要的,因此,HBase中关键技术之一的研究压缩方法是研究的重要方向,因此,提出该发明提出一种基于HBase压缩方法。
目前HBase支持的常用压缩算法有Gzip、Lzo、Snappy。不同的场合使用不同的压缩算法。Gzip是比较消耗CPU的,压缩率最高,压缩和解压速度较慢,Gzip不能被分块并行处理; Lzo的压缩率居中,比Gzip低一些,但压缩和解压速度要比Gzip快,其中解压速度更快,CPU消耗的比Gzip少。Snappy的压缩率最低,而压缩和解压速度要稍微比Lzo要快一些。
Gzip算法的基本原理是对要压缩的文件首先使用lz77算法进行压缩,然后将得到的结果使用Huffman编码的方法进行压缩。Lzo算法是和lz77类似的基于字典思想的一种压缩算法,同时也使用固定长度的互动窗口用于缓存字典信息。Lzo与lz77不同的是lz77使用的是固定长度压缩,Lzo的压缩长度是可变的,lz77压缩时需要在滑动窗口内对压缩数据做最大压缩匹配字符串的搜索,滑动窗口越大搜索消耗的时间越长,这是lz77算法压缩很慢的原因之一,而Lzo算法是使用哈希映射的查找方式查找匹配的字符串,这使得Lzo的压缩速率提高了很多。Lzo算法优点是解压速度快,不需要额外的内存,支持重复压缩以及原地解压。
在HBase中列中存储的数据是有相同属性的数值,根据局部相关性原理,列中的数据具有重复性。针对HBase列存储数据库是按列存储的,且每个列中的相邻值有极高的相似概率,可以将列中的值定义为一个编码单元,对列中的值相同的单元进行压缩,基于此,现提出一种可以提高数据压缩率、并能有很好的解压效果、基于HBase的压缩方法。
发明内容
本发明的技术任务是解决现有技术的不足,提供一种基于HBase压缩方法。
本发明的技术方案是按以下方式实现的,该一种基于HBase压缩方法,其具体实现过程为:
一、部署分布式集群;
二、获取HBase表文件路径;
三、通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;
四、对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数,其中每一列中的列属性值与rowkey位置信息作为压缩条件,然后根据特定列中属性值的重复次数记录压缩态数据。
所述压缩接口由编解码器提供,其具体压缩过程为:通过压缩接口对写入的数据进行压缩,将其以压缩格式写入底层的流中;对读取的数据进行解压来完成,调用压缩接口,获得一个压缩输入流,从而从底层的流中读取未压缩的数据。
所述编解码器设置到配置文件中的io.compression.codecs属性上,其具体设置过程为:将该压缩方法声明到配置文件中,在io.compression.codecs属性上填写该方法的codecs,对于不同的压缩文件利用CompressionCodecFactory提供的getCodec方法将文件的扩展名映射到相应的CompressionCodecs;CompressionCodecFactory从io.compression.codecs配置属性定义的列表中获取编解码器;同时还需将压缩算法添加到Hadoop系统中,完成集群的正常工作。
本发明与现有技术相比所产生的有益效果是:
本发明的一种基于HBase压缩方法对列中相同的属性值进行压缩,提高数据压缩率,并能有很好的解压效果,可以减少数据的存储空间,大大减少数据处理时间,提高数据处理效率,能使集群保存更多的数据,延长集群的使用寿命;实用性强,易于推广。
附图说明
附图1本发明的压缩流程图。
附图2实施例中HBase表的结构及数据示例图。
附图3是实施例中c1列族中压缩数据间的连接操作示意图。
附图4是实施例中c1列族中age列压缩数据与c2列族非压缩数据中width列间连接操作。
具体实施方式
下面结合附图对本发明的一种基于HBase压缩方法作以下详细说明。
在HBase系统中,有的文件是经常被访问的,这样时间性能是比较重要的,而还有一些文件是属于不常被访问的,如归档文件。根据HBase中列存储的数据块中属性值有很高的重复率, 该HBase压缩方法是对轻量级压缩算法的改进,将列的属性值重复的进行压缩,注重压缩率,节约磁盘空间。
如附图1所示,本发明提供的一种基于HBase压缩方法,其具体实现过程为:
一、部署分布式集群;
二、获取HBase表文件路径;
三、通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;
四、对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数,其中每一列中的列属性值与rowkey位置信息作为压缩条件,然后根据特定列中属性值的重复次数记录压缩态数据。
在压缩方法中需要有一个编码器及一个解码器。
在编解码器中,可以根据Hadoop中提供的一个压缩接口CompressionCodec,该压缩接口是根据Hadoop中提供的标准压缩接口进行实现,然后通过该接口来完成压缩和解压。
该过程通过对写入的数据进行压缩,对读取的数据进行解压来完成:在压缩过程中,是对于写入的数据进行压缩,使用接口中自带的createOutPutStream方法创建未压缩的数据写入这个数据流中,该方法中的参数是OutPutStream,将其以压缩格式写入底层的流中。在解压的过程中,调用接口中的createOutPutStream方法,获得一个压缩输入流,从而从底层的流中读取未压缩的数据。
然后将该压缩方法的编解码器设置到配置文件中的io.compression.codecs属性上:在io.compression.codecs属性上填写该方法的codecs,对于不同的压缩文件可以利用CompressionCodecFactory提供的getCodec方法将文件的扩展名映射到相应的CompressionCodecs。CompressionCodecFactory从io.compression.codecs配置属性定义的列表中获取编解码器。在HBase中,数据是存储在Hadoop的分布式文件系统HDFS中的,因此,在修改HBase的数据压缩类的代码的同时,还需将压缩算法添加到Hadoop系统中,这样才能是整个集群的工作正常。
若要注册实现的或外部的编解码器,通过在配置文件中设置属性值即可。
在HBase数据库压缩态数据中可以对数据进行访问,HBase是按列为单位存储的,不同的列保存在不同的物理单元中,读取一条记录的多个属性值必须先将各个属性值读取出来,然后根据rowkey进行关联操作,将同一rowkey记录的独立属性值连接成逻辑上的行数据。
本发明针对HBase中列的属性值有高度的重复性,将列中的重复出现的数据进行压缩,达到减少存储空间的目的。将列属性值作为一个编码单元进行数据压缩,可以节省最佳匹配串的搜索时间,又由于压缩方式是属性值之间的压缩,内部数据不压缩,因此压缩速度快,解压速度也很快。
本发明的实施例如附图2~4所示,其具体实现过程为:首先部署分布式集群环境,该集群环境共有5个节点, 其中一个节点作为master, 其余四个作为slave. 其中四个节点均采用Xeon E5-2620 2.00GHz CPU, core的数量是24, 96GB 内存,12*2T硬盘, 操作系统是centos6.3 ,另外一个节点配置是Xeon E7- 8837 2.67GHz CPU, core的数量是128, 500GB 内存,5*2T硬盘, 操作系统是centos6.3。基于HBase压缩方法的流程图如附图1所示,首先根据HBase表的获取该表的列文件路径,将列文件路径指定的文件作为压缩的输入路径,然后改写HBase压缩算法仅对列属性中重复属性值进行压缩,通过Hadoop中提供的压缩接口来实现解压缩的过程,将该写过的压缩方法声明到配置文件中,再次在配置文件中选定要解压缩的方法,将每个列文件通过该压缩方法进行压缩得到三元组的压缩数据,通过该三元组(rowkey位置信息,列属性值,重复次数)可以快速的解压缩还原数据。
在HBase表中的结构及数据示例如附图2所示,该表中有两个列族c1、c2。在c1列族中有两个列分别是age和length,在c2列族中有一个列width。该表中的列数据有相同的属性,因此列中属性值有高度的重复性。在基于HBase压缩方法中将该表的列属性值进行压缩,在c1:age中压缩的结果是(1,18,4;5,19,3)的三元组形式,其中三元组中的1表示rowkey的位置信息,18表示c1列族中age列的属性值,4表示age列属性值18连续出现的次数。同样的方法压缩了c1:length及c2:width数据。在压缩的数据中可以根据三元组的形式对压缩数据进行连接来查找相应rowkey的记录,如查找c1列族中的所有rowkey的记录情况如附图3所示,根据c1:age中的压缩数据来获取rowkey及age中的属性值,如果该值等于1,则查找下个压缩数据记录取出相应的数据即可;如果该值大于1,则一直循环下去,将当前rowkey位置中的下一个位置的rowkey对应的c1:age属性值也设置为该值,如此反复执行,直到循环结束。这样就可以查找到c1列族中全部的记录。对于压缩数据与非压缩数据之间的连接可如附图4所示,查找c1列族中age列压缩数据与c2列族中width列的非压缩数据连接,同样先将压缩数据按照三元组的形式获取rowkey及属性值,然后与c2中的rowkey对应连接即可得到c1列族中age列压缩数据与c2列族非压缩数据中width列的全部记录。在上述的连接操作中只需根据重复次数即可对相应的rowkey进行连接,这样可以大大节省了操作的时间。
对于基于HBase压缩方法的优点在于,可以根据列属性中的局部相关性和高度重复性进行压缩,大大减少了存储空间的利用,同时提高了数据处理的效率。该压缩方法可以直接根据数据本身的特点对压缩态数据进行操作,避免了解压的过程,减轻了不必要的处理过程,提高了数据压缩率,有很好的解压效果。
以上所述仅为本发明的实施例而已,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于HBase压缩方法,其特征在于其具体实现过程为:
一、部署分布式集群;
二、获取HBase表文件路径;
三、通过压缩接口实现对属性值的压缩,这里的属性值是指HBase中列存储数据的属性值;
四、对每个列文件属性值进行压缩,得到压缩数据三元组,即rowkey位置信息,列属性值,重复次数,其中每一列中的列属性值与rowkey位置信息作为压缩条件,然后根据特定列中属性值的重复次数记录压缩态数据。
2.根据权利要求1所述的一种基于HBase压缩方法,其特征在于:所述压缩接口由编解码器提供,其具体压缩过程为:通过压缩接口对写入的数据进行压缩,将其以压缩格式写入底层的流中;对读取的数据进行解压来完成,调用压缩接口,获得一个压缩输入流,从而从底层的流中读取未压缩的数据。
3.根据权利要求2所述的一种基于HBase压缩方法,其特征在于:所述编解码器设置到配置文件中的io.compression.codecs属性上,其具体设置过程为:将该压缩方法声明到配置文件中,在io.compression.codecs属性上填写该方法的codecs,对于不同的压缩文件利用CompressionCodecFactory提供的getCodec方法将文件的扩展名映射到相应的CompressionCodecs;CompressionCodecFactory从io.compression.codecs配置属性定义的列表中获取编解码器;同时还需将压缩算法添加到Hadoop系统中,完成集群的正常工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310728845.8A CN103729429A (zh) | 2013-12-26 | 2013-12-26 | 一种基于HBase压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310728845.8A CN103729429A (zh) | 2013-12-26 | 2013-12-26 | 一种基于HBase压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103729429A true CN103729429A (zh) | 2014-04-16 |
Family
ID=50453503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310728845.8A Pending CN103729429A (zh) | 2013-12-26 | 2013-12-26 | 一种基于HBase压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729429A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320746A (zh) * | 2015-09-25 | 2016-02-10 | 北京北信源软件股份有限公司 | 一种基于大数据的索引获取方法及系统 |
CN105375930A (zh) * | 2015-04-09 | 2016-03-02 | 国家电网公司 | 一种储能电站海量数据压缩方法及系统 |
CN105653698A (zh) * | 2015-12-30 | 2016-06-08 | 北京奇艺世纪科技有限公司 | 一种数据库表Hive Table的数据加载方法和装置 |
WO2017018567A1 (ko) * | 2015-07-28 | 2017-02-02 | 디포커스(주) | 하둡 기반 하드웨어 압축 고속화 장치 및 방법 |
CN106713394A (zh) * | 2015-11-16 | 2017-05-24 | 华为技术有限公司 | 一种数据传输方法和装置 |
WO2018010462A1 (zh) * | 2016-07-12 | 2018-01-18 | 华为技术有限公司 | 数据处理的方法及装置 |
CN108628898A (zh) * | 2017-03-21 | 2018-10-09 | 中国移动通信集团河北有限公司 | 数据入库的方法、装置和设备 |
CN108984103A (zh) * | 2017-06-02 | 2018-12-11 | 伊姆西Ip控股有限责任公司 | 用于去重的方法和设备 |
CN110019347A (zh) * | 2018-01-02 | 2019-07-16 | 中国移动通信有限公司研究院 | 一种区块链的数据处理方法、装置及终端设备 |
CN113297155A (zh) * | 2021-05-21 | 2021-08-24 | 曙光信息产业(北京)有限公司 | 数据存储方法、装置及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006232A (en) * | 1997-10-21 | 1999-12-21 | At&T Corp. | System and method for multirecord compression in a relational database |
CN102708187A (zh) * | 2012-05-14 | 2012-10-03 | 成都信息工程学院 | 基于Hbase数据库的倒排索引混合压缩及解压方法 |
CN103631940A (zh) * | 2013-12-09 | 2014-03-12 | 中国联合网络通信集团有限公司 | 一种应用于hbase数据库的数据写入方法及系统 |
-
2013
- 2013-12-26 CN CN201310728845.8A patent/CN103729429A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006232A (en) * | 1997-10-21 | 1999-12-21 | At&T Corp. | System and method for multirecord compression in a relational database |
CN102708187A (zh) * | 2012-05-14 | 2012-10-03 | 成都信息工程学院 | 基于Hbase数据库的倒排索引混合压缩及解压方法 |
CN103631940A (zh) * | 2013-12-09 | 2014-03-12 | 中国联合网络通信集团有限公司 | 一种应用于hbase数据库的数据写入方法及系统 |
Non-Patent Citations (1)
Title |
---|
罗燕新: "基于HBASE的列存储压缩算法的研究与实现", 《中国硕士学位论文全文数据库信息科技辑》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105375930A (zh) * | 2015-04-09 | 2016-03-02 | 国家电网公司 | 一种储能电站海量数据压缩方法及系统 |
WO2017018567A1 (ko) * | 2015-07-28 | 2017-02-02 | 디포커스(주) | 하둡 기반 하드웨어 압축 고속화 장치 및 방법 |
CN105320746A (zh) * | 2015-09-25 | 2016-02-10 | 北京北信源软件股份有限公司 | 一种基于大数据的索引获取方法及系统 |
US10979520B2 (en) | 2015-11-16 | 2021-04-13 | Huawei Technologies Co., Ltd. | Data transmission method and apparatus |
CN106713394A (zh) * | 2015-11-16 | 2017-05-24 | 华为技术有限公司 | 一种数据传输方法和装置 |
CN105653698A (zh) * | 2015-12-30 | 2016-06-08 | 北京奇艺世纪科技有限公司 | 一种数据库表Hive Table的数据加载方法和装置 |
WO2018010462A1 (zh) * | 2016-07-12 | 2018-01-18 | 华为技术有限公司 | 数据处理的方法及装置 |
US11005737B2 (en) | 2016-07-12 | 2021-05-11 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
CN108628898A (zh) * | 2017-03-21 | 2018-10-09 | 中国移动通信集团河北有限公司 | 数据入库的方法、装置和设备 |
CN108628898B (zh) * | 2017-03-21 | 2021-04-23 | 中国移动通信集团河北有限公司 | 数据入库的方法、装置和设备 |
CN108984103A (zh) * | 2017-06-02 | 2018-12-11 | 伊姆西Ip控股有限责任公司 | 用于去重的方法和设备 |
CN108984103B (zh) * | 2017-06-02 | 2021-06-22 | 伊姆西Ip控股有限责任公司 | 用于去重的方法和设备 |
US11461276B2 (en) | 2017-06-02 | 2022-10-04 | EMC IP Holding Company LLC | Method and device for deduplication |
CN110019347A (zh) * | 2018-01-02 | 2019-07-16 | 中国移动通信有限公司研究院 | 一种区块链的数据处理方法、装置及终端设备 |
CN110019347B (zh) * | 2018-01-02 | 2021-05-25 | 中国移动通信有限公司研究院 | 一种区块链的数据处理方法、装置及终端设备 |
CN113297155A (zh) * | 2021-05-21 | 2021-08-24 | 曙光信息产业(北京)有限公司 | 数据存储方法、装置及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729429A (zh) | 一种基于HBase压缩方法 | |
US11256696B2 (en) | Data set compression within a database system | |
Paparrizos et al. | VergeDB: A Database for IoT Analytics on Edge Devices. | |
EP2321746B1 (en) | Efficient large-scale processing of column based data encoded structures | |
CN104380267B (zh) | 数据解压/压缩装置 | |
Bicer et al. | Integrating online compression to accelerate large-scale data analytics applications | |
US20120109910A1 (en) | Efficient column based data encoding for large-scale data storage | |
CN102024047B (zh) | 数据检索方法及装置 | |
US11010344B2 (en) | High-density compression method and computing system | |
TWI530105B (zh) | 資料處理裝置及資料處理方法 | |
CN107301214A (zh) | 在hive中数据迁移方法、装置及终端设备 | |
EP3872703B1 (en) | Method and device for classifying face image, electronic device and storage medium | |
JP2019512125A (ja) | データベースのアーカイビング方法及び装置、アーカイビングされたデータベースの検索方法及び装置 | |
JP2019512124A (ja) | インデックス情報を生成するデータベースのアーカイビング方法及び装置、インデックス情報を含むアーカイビングされたデータベースの検索方法及び装置 | |
CN103744952A (zh) | NoSQL数据库多表特性的实现方法及系统 | |
CN115168319A (zh) | 一种数据库系统、数据处理方法及电子设备 | |
CN104133883B (zh) | 电话号码归属地数据压缩方法 | |
Anuradha et al. | A detailed review on the prominent compression methods used for reducing the data volume of big data | |
Cheng et al. | The Key as Dictionary Compression Method of Inverted Index Table under the Hbase Database. | |
Zhang et al. | A Compatible LZMA ORC-Based Optimization for High Performance Big Data Load | |
Liao et al. | Bullion: A Column Store for Machine Learning | |
Ma et al. | BreadZip: a combination of network traffic data and bitmap index encoding algorithm | |
Mladenova et al. | Impact of data compression on the performance of column-oriented data stores | |
Yang et al. | Compression Performance Analysis of Different File Formats | |
US11971856B2 (en) | Efficient database query evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140416 |