码迷,mamicode.com
首页 > 其他好文 > 详细

hbase开启lzo压缩

时间:2015-06-02 17:52:53      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:超人学院   hadoop   hbase   

hbase只支持对gzip的压缩,对lzo压缩支持不好。在io成为系统瓶颈的情况下,一般开启lzo压缩会提高系统的吞吐量。但这需要参考具体的应用场景,即是否值得进行压缩、压缩率是否足够等等。 

想要hbase支持lzo压缩,参照以下步骤: 
1 首先要让系统支持lzo动态库,安装lzo-2.00以上版本:http://www.oberhumer.com/opensource/lzo/download/ 
2 默认安装完后应该在系统的/usr/local/lib/找到liblzo*等几个so 
3 到http://code.google.com/p/hadoop-gpl-compression/下载lzo相关的native库 
4 拷贝3中下载的hadoop-gpl-compression-0.1.0-dev.jar 或hadoop-gpl-compression-0.1.0.jar 到 hbase/lib以及hadoop/lib 中 
5 拷贝3中下载的 lib/native/* 到 hadoop/lib/native 及 hbase/lib/native 
6 确保以上4/5中的文件同步到了每台regionserver上 
7 在core-site.xml中加上:
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>  
<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>

重启dfs及hbase,建表时使用:
Java代码

  • create ‘mytable‘, {NAME=>‘colfam:‘, COMPRESSION=>‘lzo‘}  
create ‘mytable‘,{NAME=>‘colfam:‘, COMPRESSION=>‘lzo‘}

此时这个column即为lzo了,往它读写数据会自动进行lzo压缩和解压缩。 

P.S: 
1 如果不清楚你的hbase是否配置好了支持lzo,可以执行以下命令检查之,如果不支持的话这个命令会提示你还缺什么文件:
Java代码

  • hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://namenode:9000/test_path lzo  
hbaseorg.apache.hadoop.hbase.util.CompressionTest hdfs://namenode:9000/test_path lzo

如果你和我一样使用了CDH3版本的hdfs,那么该版本的hdfs与hadoop-gpl-compression会有冲突,原因是CDH3修改了compression.java,增加了reinit()接口。 
此时需要重新编译hadoop-gpl-compression工程,修改 src/java/com/hadoop/compression/lzo/LzoCompressor.java,增加以下行:
Java代码

  • public void reinit(Configuration conf) {       
  •   // do nothing       
  • }  
  public void reinit(Configuration conf) {
    // do nothing
  }

  
然后重新编译工程,将生成的jar包替换以上第4步中的那个jar包

更多精彩内容请关注:http://bbs.superwu.cn
关注超人学院微信二维码:技术分享
关注超人学院java免费学习交流群:技术分享

hbase开启lzo压缩

标签:超人学院   hadoop   hbase   

原文地址:http://blog.csdn.net/crxy2014/article/details/46332417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!