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.

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