hbase lzo的使用
为什么用LZO?
启用LZO压缩
LZO对比Hbase默认的GZip,前者性能较高,后者压缩比较高,具体参见 Using LZO Compression 。对于想提高HBase读写性能的开发者,采用LZO是比较好的选择。对于非常在乎存储空间的开发者,则建议保持默认。
我对lzo和gz对比并测试了一下,发现性能提升并不是十分明显。
一、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'} 按照列族压缩