hbase 使用LZO筆記

之前我們發現數據錄入到hbase中,數據佔用的空間變大,所以我們考慮使用壓縮來降低,下面是安裝使用lzo的過程,在這記錄一下備忘。

一、hbase添加LZO

注意:root用戶安裝,否則安裝會出現錯誤
1、首先要讓系統支持lzo動態庫,安裝lzo-2.00以上版本:http://www.oberhumer.com/opensource/lzo/download/

2、解壓 tar -zxvf lzo-2.06.tar.gz

3、進入解壓後的目錄,執行./configure  --enable-shared

4、執行make進行編譯,編譯完成後執行make install進行安裝lzo
     make install庫文件被默認安裝到了/usr/local/lib,將/usr/local/lib拷貝到/usr/lib下,或者在/usr/lib下建立軟連接ln -s /usr/local/lib/* .

5、到http://code.google.com/p/hadoop-gpl-compression/下載lzo相關的native庫;

6、下載的 hadoop-gpl-compression-0.1.0.jar 到 hbase/lib以及hadoop/lib 中

7、下載的hadoop-gpl-compression-0.1.0中的 lib/native/* 到 hadoop/lib/native 及 hbase/lib/native

8、確保6、7的文件同步到了每臺regionserver上

9、在core-site.xml中加上:

 <property>
<name>io.compression.codecs</name>
<value>com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

 

安裝完成了lzo,可以使用hbase的lzo example來驗證一下,執行一下命令:

 hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://223.5.12.88:9000/user.dat lzo

二、應用

create 'test', {NAME=>'cf', COMPRESSION=>'lzo'} 按照列族壓縮

另外,在網上找了一下資料,發現lzo壓縮是發生在compress的過程中,所以向hbase中錄入數據後,使用hadoop fs -du /hbase不能很快看到數據空間變小的,或者手動執行compress,或者等待hbase自動執行compress後,才能看到效果。以下是官網截取的信息:

By enabling compression, the store file (HFile) will use a compression algorithm on blocks as they are written (during flushes and compactions) and thus must be decompressed when reading.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章