陳潔 陳冬杰 黃幫明
摘要:近年來,社交網(wǎng)絡(luò)、電子商務(wù)、網(wǎng)絡(luò)游戲、在線視頻等,新一代大規(guī)?;ヂ?lián)網(wǎng)應(yīng)用迅猛發(fā)展。這些新興的應(yīng)用出現(xiàn)了數(shù)據(jù)存儲量大、業(yè)務(wù)增長速度快等特點(diǎn)。該文將總體分析HBASE 中支持的壓縮算法,并對這兩種壓縮算法做對比,對以后的建設(shè)提供了指導(dǎo)作用。對于大數(shù)據(jù)時(shí)代的到來,如何提高查詢時(shí)間和存儲容量、系統(tǒng)的穩(wěn)定性和使用廉價(jià)的硬件設(shè)備,研究壓縮算法具有重要的現(xiàn)實(shí)意義。
關(guān)鍵詞:壓縮算法; HBASE ;列存儲
中圖分類號:TP302.7 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)13-3146-02
Research on HBASE Based Big Data Compression Algorithm
CHEN Jie1,CHEN Dong-jie2,HUANG Bang-ming2
(1.Chongqing University of Posts and Telecommun-ications, Chongqing 400064, China; 2.China Mobile Group Design Institute Co.,Ltd,Chongqing 400042, China)
Abstract:In recent years, social networking, e-commerce, online games, online video, etc., the rapid development of a new generation of large-scale Internet applications. These emerging applications appeared in data storage capacity, fast business growth characteristics. This article analyzes the overall compression algorithm HBASE supported, and these two compression algorithms do comparison on future construction provides a guiding role. For the arrival of the era of big data, how to improve the query time and storage capacity, the system's stability and the use of inexpensive hardware device, the compression algorithm research has important practical significance.
Key words:compression algorithm; HBASE; column-oriented
1 概述
隨著信息化技術(shù)的飛速發(fā)展與人們對網(wǎng)絡(luò)的需求,各種系統(tǒng)數(shù)據(jù)量也越來越大,存儲空間也不斷的增加,對后期的建設(shè)和維護(hù)也帶來了極大的影響。由于數(shù)據(jù)庫太大,導(dǎo)致該數(shù)據(jù)庫備份時(shí)間長,嚴(yán)重影響系統(tǒng)運(yùn)行的穩(wěn)定性;由于數(shù)據(jù)庫太大,盡管這個(gè)時(shí)候數(shù)據(jù)庫磁盤空間也大大提高了,但仍然無法跟上數(shù)據(jù)增長的速度,而其隨著數(shù)據(jù)量的增大,數(shù)據(jù)的查詢與存儲效率也越來越低。為了提高數(shù)據(jù)庫的性能,如何改進(jìn)數(shù)據(jù)庫查詢效率的同時(shí)也越來越關(guān)注如何將數(shù)據(jù)壓縮技術(shù)應(yīng)用到數(shù)據(jù)庫系統(tǒng)中。面臨大數(shù)據(jù)時(shí)代,引起數(shù)據(jù)庫太大,因此必須采用數(shù)據(jù)壓縮技術(shù),對數(shù)據(jù)進(jìn)行壓縮存儲,解決目前由大數(shù)據(jù)引起地各種問題。壓縮技術(shù)主要是減少文件所占的存儲空間,并且要求壓縮過程中不丟失信息。不丟失信息也就是經(jīng)解壓縮文件與壓縮之前的文件完全相同。該文介紹了HBASE ,主要介紹HBASE 中支持的壓縮算法。并對其中的壓縮算法進(jìn)行了對比分析,并得出結(jié)果。
2 HBASE 概述
HBASE是Apache的Hadoop項(xiàng)目的子項(xiàng)目[1]。HBASE 是一個(gè)開源的、分布式的、面向列的存儲系統(tǒng)。HBASE 是Google Bigtable的開源實(shí)現(xiàn),類似Google Bigtable利用GFS作為其文件存儲系統(tǒng),HBASE 利用Hadoop HDFS作為其文件存儲系統(tǒng);Google運(yùn)行MapReduce來處理Bigtable中的海量數(shù)據(jù),然而HBASE 同樣利用Hadoop MapReduce來處理HBASE 中的海量數(shù)據(jù);Google Bigtable利用 Chubby作為協(xié)同服務(wù),然而HBASE 利用Zookeeper作為對應(yīng)協(xié)調(diào)系統(tǒng)。HBASE [2]是一個(gè)面向列、可伸縮的、以鍵值對形式來存儲數(shù)據(jù)的分布式存儲系統(tǒng),是Google的Big-table[3]的一種開源實(shí)現(xiàn),它與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫模型不一樣。HBASE 是Hadoop的一個(gè)子項(xiàng)目,它是在HDFS[4]之上開發(fā)的面向列的分布式數(shù)據(jù)庫,可用于實(shí)時(shí)地隨機(jī)讀寫大規(guī)模數(shù)據(jù)集。并且利用HBASE 可搭建起大規(guī)模結(jié)構(gòu)化存儲集群在廉價(jià)PC Sever上。當(dāng)用戶由關(guān)系數(shù)據(jù)庫向HBASE 遷移時(shí)就不必對程序重新修改,因此降低了遷移成本,能促進(jìn)HBASE 發(fā)展且具有現(xiàn)實(shí)應(yīng)用價(jià)值。HBASE 不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫,采用基于列的存儲而不是基于行的存儲模式。在基于列存儲的數(shù)據(jù)庫的數(shù)據(jù)表中,數(shù)據(jù)表中的每列單獨(dú)存放在相鄰的物理單元;這樣查詢時(shí)只需要訪問涉及的列,不需要將整行數(shù)據(jù)都進(jìn)行讀取處理,大大降低系統(tǒng)的I/O開銷;讀取每列時(shí)可以由一個(gè)線程進(jìn)行處理完成,同時(shí)也支持讀取并發(fā)處理。
3 壓縮算法
壓縮算法分為無損壓縮和有損壓縮。兩者相比,無損壓縮比不高,但是它100%的保存了原始信息。無損壓縮從壓縮模型上主要分為基于統(tǒng)計(jì)的壓縮算法和基于字典的壓縮算法。基于字典壓縮算法主要有LZ77[4]算法、LZ78[5]算法、LZW[6]算法、LZSS[7]算法。基于統(tǒng)計(jì)壓縮算法主要有香濃-凡諾編碼(Shanno-Fano)、游程長度編碼(RLC)、哈夫曼編碼(Huffman)、動態(tài)哈夫曼、算術(shù)編碼。目前HBASE 支持的壓縮算法主要有Gzip[8]和LZO [9]。endprint
3.1 Gzip壓縮算法
采用Gzip 算法對大數(shù)據(jù)進(jìn)行壓縮,在壓縮過程中首先使用LZ77算法,再使用Huffman編碼。LZ77算法的核心思想主要通過相同內(nèi)容的替換來實(shí)現(xiàn)。如果文件中有兩塊內(nèi)容相同,那么只要知道前一塊的位置和大小,我們就可以簡單表達(dá)確定后一塊內(nèi)容的相關(guān)信息。后一塊信息(a,b)可以這樣表示,a表示兩者之間的距離,b表示相同內(nèi)容的長度。當(dāng)這一對信息(a,b)的大小小于被替換內(nèi)容的大小,這樣文件就得到壓縮。Huffman編碼的壓縮原理:把文件中某段位長的值看作是符號。根據(jù)這些符號在文件中出現(xiàn)的頻率,再對這些符號進(jìn)行重新編碼。按照這樣的算法編碼,文件的一些部分位數(shù)變少了然而一些部分位數(shù)變多了,因?yàn)樽冃〉牟糠执笥谧兇蟮牟糠?,所以整個(gè)數(shù)據(jù)因此得到壓縮。
3.2 LZO壓縮算法
LZO是Lempel-Ziv-Oberhumer的縮寫,LZO是基于LZSS算法是一種無損算法。LZO與Gzip不同在于解壓速度,LZO在快速解壓表現(xiàn)尤為明顯。LZO和LZ77算法類似也是基于字典思想的一種壓縮算法,同時(shí)使用固定長度滑動窗口用來緩存字典信息,所以LZO的編碼也是需要使用一個(gè)偏移量,重復(fù)長度期待當(dāng)前字符串。但是LZO與LZ77有一些區(qū)別, LZO的編碼中沒有了LZ77編碼的第3項(xiàng):新字符,當(dāng)壓縮字符與滑動窗體的字典信息沒有匹配時(shí)使用一個(gè)標(biāo)志位加字符內(nèi)容標(biāo)示而不是一個(gè)三元組;還有 LZ77使用的是固定的壓縮長度,LZO的壓縮長度是可變的,范圍在13個(gè)字節(jié)和4096字節(jié)之間,最后一點(diǎn)是LZ77壓縮時(shí)需要滑動窗口內(nèi)對待壓縮數(shù)據(jù)做最大壓縮匹配字符串的搜索,滑動窗口越大搜索消耗的時(shí)間也就越大,這是LZ77算法壓縮很慢的原因之一,在LZO算法放棄最大壓縮匹配字符串的搜索,而是使用的哈希映射的查找方式查找匹配的字符串[10]。
4 算法的分析與比較
數(shù)據(jù)壓縮的性能指標(biāo)主要有:壓縮率、壓縮速度、解壓速度、壓縮時(shí)間。衡量壓縮空間上的變量主要指標(biāo)是壓縮率。同時(shí)壓縮時(shí)間是衡量數(shù)據(jù)壓縮性能的一個(gè)很重要的指標(biāo)。對于大數(shù)據(jù)的特點(diǎn),在這里主要討論壓縮率。壓縮率與壓縮速度公式如下:
[壓縮率=][壓縮之后數(shù)據(jù)大小原始數(shù)據(jù)大小],[壓縮速度=原始數(shù)據(jù)大小壓縮時(shí)間]
通過多次測試求平均值的方法得出壓縮率[f],對于定量的文件[A]大小進(jìn)行壓縮。[T1]表示第一次對文件大小進(jìn)行壓縮時(shí)得出的壓縮結(jié)果,[Tn]表示第n次文件進(jìn)行壓縮取得的壓縮結(jié)果。
[f1] 根據(jù)第一次壓縮求到的壓縮率[f1=AT1],第n次的壓縮率為[fn=ATn],由此可以通過多次測試得出壓縮率[f=] [f1+f2+.....fnn]。為了比較兩種壓縮的效果,采用定量的數(shù)據(jù)壓縮。通過測試得以下數(shù)據(jù)。
表1 測試數(shù)據(jù)結(jié)果
[壓縮算法\&原始文件GB\&壓縮后文件GB\&壓縮速度MB/S\&壓縮率%\&Gzip\&16.6\&3.6\&17.5\&21.5\&LZO\&16.6\&5.8\&49.3\&35.1\&]
從以上測試數(shù)據(jù)可知:當(dāng)文件大小與硬件設(shè)備相同條件下,Gzip壓縮率優(yōu)于LZO壓縮,但是壓縮速度上LZO壓縮更為突出。在空間和時(shí)間性能的限制中,Gzip的壓縮率較低,壓縮效果好,LZO壓縮速度快。根據(jù)不同的需求可以選擇不同的壓縮,當(dāng)對空間要求較高將采用Gzip壓縮,當(dāng)對時(shí)間要求比較嚴(yán)格可采用LZO壓縮。
5 總結(jié)
本文對HBASE中支持的兩種算法進(jìn)行了比較、分析,并得出結(jié)果。在不同的場景根據(jù)需求將選擇不同的算法。如果在要求讀取壓縮文件時(shí),將進(jìn)一步考慮解壓速度。大數(shù)據(jù)如此重要,以至于其獲取、儲存、查詢、共享、分析,數(shù)據(jù)挖掘乃至可視化地呈現(xiàn),都成為了當(dāng)前重要的研究課題。
未來的工作中,我們將會對如何對大數(shù)據(jù)挖掘、分析用戶行為展開進(jìn)一步地研究,以提高信息的可用性與有效性。同時(shí),進(jìn)一步研究如何規(guī)劃大數(shù)據(jù)存儲策略,是未來大數(shù)據(jù)挑戰(zhàn)的工作之一。
參考文獻(xiàn):
[1] HBASE.http://HBASE.apache.org/[EB/OL].[2011-02-16].
[2] HBASE :bigtable-like structured storage for hadoop hdfs[EB/OL].http:/hadoop.apache.org/HBASE /,2010
[3] Fan Chang, Jeffrey Dean , Sanjay Chemawat,et al.Bigtable:a distributed storage system for structured data[C].Proceedings of 7 th USENIX Symposium on Operating Systems Design and Implementation,Seattle,W A,USE:USENIX Association,2006:205-218.
[4] Shvachko K V. HDFS Scalability: The limits to growth[J].login,2010,35(2):6-16.
[5] Wolff F G,Papachristou C.Multiscan-based test compression and hardware decompression using LZ77[C]//Test Conference, 2002. Proceedings. International.IEEE,2002: 331-339.
[6] Li M,Zhu Y.Image classification via LZ78 based string kernel: a comparative study[C]//Advances in knowledge discovery and data mining.Springer Berlin Heidelberg,2006:704-712.
[7] Nelson M R.LZW data compression[J].Dr. Dobb's Journal,1989,14(10):29-36.
[8] Wiseman Y.The relative efficiency of data compression by LZW and LZSS[J].Data Science Journal,2007,6:1-6.
[9] Gailly J L, Adler M. gzip:The compressor data[J].2011.
[10] 羅燕新.基于HBASE的列存儲壓縮算法的研究與實(shí)現(xiàn)[D].華南理工大學(xué), 2011.endprint
3.1 Gzip壓縮算法
采用Gzip 算法對大數(shù)據(jù)進(jìn)行壓縮,在壓縮過程中首先使用LZ77算法,再使用Huffman編碼。LZ77算法的核心思想主要通過相同內(nèi)容的替換來實(shí)現(xiàn)。如果文件中有兩塊內(nèi)容相同,那么只要知道前一塊的位置和大小,我們就可以簡單表達(dá)確定后一塊內(nèi)容的相關(guān)信息。后一塊信息(a,b)可以這樣表示,a表示兩者之間的距離,b表示相同內(nèi)容的長度。當(dāng)這一對信息(a,b)的大小小于被替換內(nèi)容的大小,這樣文件就得到壓縮。Huffman編碼的壓縮原理:把文件中某段位長的值看作是符號。根據(jù)這些符號在文件中出現(xiàn)的頻率,再對這些符號進(jìn)行重新編碼。按照這樣的算法編碼,文件的一些部分位數(shù)變少了然而一些部分位數(shù)變多了,因?yàn)樽冃〉牟糠执笥谧兇蟮牟糠?,所以整個(gè)數(shù)據(jù)因此得到壓縮。
3.2 LZO壓縮算法
LZO是Lempel-Ziv-Oberhumer的縮寫,LZO是基于LZSS算法是一種無損算法。LZO與Gzip不同在于解壓速度,LZO在快速解壓表現(xiàn)尤為明顯。LZO和LZ77算法類似也是基于字典思想的一種壓縮算法,同時(shí)使用固定長度滑動窗口用來緩存字典信息,所以LZO的編碼也是需要使用一個(gè)偏移量,重復(fù)長度期待當(dāng)前字符串。但是LZO與LZ77有一些區(qū)別, LZO的編碼中沒有了LZ77編碼的第3項(xiàng):新字符,當(dāng)壓縮字符與滑動窗體的字典信息沒有匹配時(shí)使用一個(gè)標(biāo)志位加字符內(nèi)容標(biāo)示而不是一個(gè)三元組;還有 LZ77使用的是固定的壓縮長度,LZO的壓縮長度是可變的,范圍在13個(gè)字節(jié)和4096字節(jié)之間,最后一點(diǎn)是LZ77壓縮時(shí)需要滑動窗口內(nèi)對待壓縮數(shù)據(jù)做最大壓縮匹配字符串的搜索,滑動窗口越大搜索消耗的時(shí)間也就越大,這是LZ77算法壓縮很慢的原因之一,在LZO算法放棄最大壓縮匹配字符串的搜索,而是使用的哈希映射的查找方式查找匹配的字符串[10]。
4 算法的分析與比較
數(shù)據(jù)壓縮的性能指標(biāo)主要有:壓縮率、壓縮速度、解壓速度、壓縮時(shí)間。衡量壓縮空間上的變量主要指標(biāo)是壓縮率。同時(shí)壓縮時(shí)間是衡量數(shù)據(jù)壓縮性能的一個(gè)很重要的指標(biāo)。對于大數(shù)據(jù)的特點(diǎn),在這里主要討論壓縮率。壓縮率與壓縮速度公式如下:
[壓縮率=][壓縮之后數(shù)據(jù)大小原始數(shù)據(jù)大小],[壓縮速度=原始數(shù)據(jù)大小壓縮時(shí)間]
通過多次測試求平均值的方法得出壓縮率[f],對于定量的文件[A]大小進(jìn)行壓縮。[T1]表示第一次對文件大小進(jìn)行壓縮時(shí)得出的壓縮結(jié)果,[Tn]表示第n次文件進(jìn)行壓縮取得的壓縮結(jié)果。
[f1] 根據(jù)第一次壓縮求到的壓縮率[f1=AT1],第n次的壓縮率為[fn=ATn],由此可以通過多次測試得出壓縮率[f=] [f1+f2+.....fnn]。為了比較兩種壓縮的效果,采用定量的數(shù)據(jù)壓縮。通過測試得以下數(shù)據(jù)。
表1 測試數(shù)據(jù)結(jié)果
[壓縮算法\&原始文件GB\&壓縮后文件GB\&壓縮速度MB/S\&壓縮率%\&Gzip\&16.6\&3.6\&17.5\&21.5\&LZO\&16.6\&5.8\&49.3\&35.1\&]
從以上測試數(shù)據(jù)可知:當(dāng)文件大小與硬件設(shè)備相同條件下,Gzip壓縮率優(yōu)于LZO壓縮,但是壓縮速度上LZO壓縮更為突出。在空間和時(shí)間性能的限制中,Gzip的壓縮率較低,壓縮效果好,LZO壓縮速度快。根據(jù)不同的需求可以選擇不同的壓縮,當(dāng)對空間要求較高將采用Gzip壓縮,當(dāng)對時(shí)間要求比較嚴(yán)格可采用LZO壓縮。
5 總結(jié)
本文對HBASE中支持的兩種算法進(jìn)行了比較、分析,并得出結(jié)果。在不同的場景根據(jù)需求將選擇不同的算法。如果在要求讀取壓縮文件時(shí),將進(jìn)一步考慮解壓速度。大數(shù)據(jù)如此重要,以至于其獲取、儲存、查詢、共享、分析,數(shù)據(jù)挖掘乃至可視化地呈現(xiàn),都成為了當(dāng)前重要的研究課題。
未來的工作中,我們將會對如何對大數(shù)據(jù)挖掘、分析用戶行為展開進(jìn)一步地研究,以提高信息的可用性與有效性。同時(shí),進(jìn)一步研究如何規(guī)劃大數(shù)據(jù)存儲策略,是未來大數(shù)據(jù)挑戰(zhàn)的工作之一。
參考文獻(xiàn):
[1] HBASE.http://HBASE.apache.org/[EB/OL].[2011-02-16].
[2] HBASE :bigtable-like structured storage for hadoop hdfs[EB/OL].http:/hadoop.apache.org/HBASE /,2010
[3] Fan Chang, Jeffrey Dean , Sanjay Chemawat,et al.Bigtable:a distributed storage system for structured data[C].Proceedings of 7 th USENIX Symposium on Operating Systems Design and Implementation,Seattle,W A,USE:USENIX Association,2006:205-218.
[4] Shvachko K V. HDFS Scalability: The limits to growth[J].login,2010,35(2):6-16.
[5] Wolff F G,Papachristou C.Multiscan-based test compression and hardware decompression using LZ77[C]//Test Conference, 2002. Proceedings. International.IEEE,2002: 331-339.
[6] Li M,Zhu Y.Image classification via LZ78 based string kernel: a comparative study[C]//Advances in knowledge discovery and data mining.Springer Berlin Heidelberg,2006:704-712.
[7] Nelson M R.LZW data compression[J].Dr. Dobb's Journal,1989,14(10):29-36.
[8] Wiseman Y.The relative efficiency of data compression by LZW and LZSS[J].Data Science Journal,2007,6:1-6.
[9] Gailly J L, Adler M. gzip:The compressor data[J].2011.
[10] 羅燕新.基于HBASE的列存儲壓縮算法的研究與實(shí)現(xiàn)[D].華南理工大學(xué), 2011.endprint
3.1 Gzip壓縮算法
采用Gzip 算法對大數(shù)據(jù)進(jìn)行壓縮,在壓縮過程中首先使用LZ77算法,再使用Huffman編碼。LZ77算法的核心思想主要通過相同內(nèi)容的替換來實(shí)現(xiàn)。如果文件中有兩塊內(nèi)容相同,那么只要知道前一塊的位置和大小,我們就可以簡單表達(dá)確定后一塊內(nèi)容的相關(guān)信息。后一塊信息(a,b)可以這樣表示,a表示兩者之間的距離,b表示相同內(nèi)容的長度。當(dāng)這一對信息(a,b)的大小小于被替換內(nèi)容的大小,這樣文件就得到壓縮。Huffman編碼的壓縮原理:把文件中某段位長的值看作是符號。根據(jù)這些符號在文件中出現(xiàn)的頻率,再對這些符號進(jìn)行重新編碼。按照這樣的算法編碼,文件的一些部分位數(shù)變少了然而一些部分位數(shù)變多了,因?yàn)樽冃〉牟糠执笥谧兇蟮牟糠?,所以整個(gè)數(shù)據(jù)因此得到壓縮。
3.2 LZO壓縮算法
LZO是Lempel-Ziv-Oberhumer的縮寫,LZO是基于LZSS算法是一種無損算法。LZO與Gzip不同在于解壓速度,LZO在快速解壓表現(xiàn)尤為明顯。LZO和LZ77算法類似也是基于字典思想的一種壓縮算法,同時(shí)使用固定長度滑動窗口用來緩存字典信息,所以LZO的編碼也是需要使用一個(gè)偏移量,重復(fù)長度期待當(dāng)前字符串。但是LZO與LZ77有一些區(qū)別, LZO的編碼中沒有了LZ77編碼的第3項(xiàng):新字符,當(dāng)壓縮字符與滑動窗體的字典信息沒有匹配時(shí)使用一個(gè)標(biāo)志位加字符內(nèi)容標(biāo)示而不是一個(gè)三元組;還有 LZ77使用的是固定的壓縮長度,LZO的壓縮長度是可變的,范圍在13個(gè)字節(jié)和4096字節(jié)之間,最后一點(diǎn)是LZ77壓縮時(shí)需要滑動窗口內(nèi)對待壓縮數(shù)據(jù)做最大壓縮匹配字符串的搜索,滑動窗口越大搜索消耗的時(shí)間也就越大,這是LZ77算法壓縮很慢的原因之一,在LZO算法放棄最大壓縮匹配字符串的搜索,而是使用的哈希映射的查找方式查找匹配的字符串[10]。
4 算法的分析與比較
數(shù)據(jù)壓縮的性能指標(biāo)主要有:壓縮率、壓縮速度、解壓速度、壓縮時(shí)間。衡量壓縮空間上的變量主要指標(biāo)是壓縮率。同時(shí)壓縮時(shí)間是衡量數(shù)據(jù)壓縮性能的一個(gè)很重要的指標(biāo)。對于大數(shù)據(jù)的特點(diǎn),在這里主要討論壓縮率。壓縮率與壓縮速度公式如下:
[壓縮率=][壓縮之后數(shù)據(jù)大小原始數(shù)據(jù)大小],[壓縮速度=原始數(shù)據(jù)大小壓縮時(shí)間]
通過多次測試求平均值的方法得出壓縮率[f],對于定量的文件[A]大小進(jìn)行壓縮。[T1]表示第一次對文件大小進(jìn)行壓縮時(shí)得出的壓縮結(jié)果,[Tn]表示第n次文件進(jìn)行壓縮取得的壓縮結(jié)果。
[f1] 根據(jù)第一次壓縮求到的壓縮率[f1=AT1],第n次的壓縮率為[fn=ATn],由此可以通過多次測試得出壓縮率[f=] [f1+f2+.....fnn]。為了比較兩種壓縮的效果,采用定量的數(shù)據(jù)壓縮。通過測試得以下數(shù)據(jù)。
表1 測試數(shù)據(jù)結(jié)果
[壓縮算法\&原始文件GB\&壓縮后文件GB\&壓縮速度MB/S\&壓縮率%\&Gzip\&16.6\&3.6\&17.5\&21.5\&LZO\&16.6\&5.8\&49.3\&35.1\&]
從以上測試數(shù)據(jù)可知:當(dāng)文件大小與硬件設(shè)備相同條件下,Gzip壓縮率優(yōu)于LZO壓縮,但是壓縮速度上LZO壓縮更為突出。在空間和時(shí)間性能的限制中,Gzip的壓縮率較低,壓縮效果好,LZO壓縮速度快。根據(jù)不同的需求可以選擇不同的壓縮,當(dāng)對空間要求較高將采用Gzip壓縮,當(dāng)對時(shí)間要求比較嚴(yán)格可采用LZO壓縮。
5 總結(jié)
本文對HBASE中支持的兩種算法進(jìn)行了比較、分析,并得出結(jié)果。在不同的場景根據(jù)需求將選擇不同的算法。如果在要求讀取壓縮文件時(shí),將進(jìn)一步考慮解壓速度。大數(shù)據(jù)如此重要,以至于其獲取、儲存、查詢、共享、分析,數(shù)據(jù)挖掘乃至可視化地呈現(xiàn),都成為了當(dāng)前重要的研究課題。
未來的工作中,我們將會對如何對大數(shù)據(jù)挖掘、分析用戶行為展開進(jìn)一步地研究,以提高信息的可用性與有效性。同時(shí),進(jìn)一步研究如何規(guī)劃大數(shù)據(jù)存儲策略,是未來大數(shù)據(jù)挑戰(zhàn)的工作之一。
參考文獻(xiàn):
[1] HBASE.http://HBASE.apache.org/[EB/OL].[2011-02-16].
[2] HBASE :bigtable-like structured storage for hadoop hdfs[EB/OL].http:/hadoop.apache.org/HBASE /,2010
[3] Fan Chang, Jeffrey Dean , Sanjay Chemawat,et al.Bigtable:a distributed storage system for structured data[C].Proceedings of 7 th USENIX Symposium on Operating Systems Design and Implementation,Seattle,W A,USE:USENIX Association,2006:205-218.
[4] Shvachko K V. HDFS Scalability: The limits to growth[J].login,2010,35(2):6-16.
[5] Wolff F G,Papachristou C.Multiscan-based test compression and hardware decompression using LZ77[C]//Test Conference, 2002. Proceedings. International.IEEE,2002: 331-339.
[6] Li M,Zhu Y.Image classification via LZ78 based string kernel: a comparative study[C]//Advances in knowledge discovery and data mining.Springer Berlin Heidelberg,2006:704-712.
[7] Nelson M R.LZW data compression[J].Dr. Dobb's Journal,1989,14(10):29-36.
[8] Wiseman Y.The relative efficiency of data compression by LZW and LZSS[J].Data Science Journal,2007,6:1-6.
[9] Gailly J L, Adler M. gzip:The compressor data[J].2011.
[10] 羅燕新.基于HBASE的列存儲壓縮算法的研究與實(shí)現(xiàn)[D].華南理工大學(xué), 2011.endprint