Hbase设置Snappy压缩测试



在DT大数据时代,海量数据的存储和分析是一个巨大的挑战,给我们的hadoop或者hbase集群添加数据压缩的能力,是必不可少的,通过压缩我们不但能节约磁盘空间,而且也能节省集群间网络带宽的损耗,从而间接提高了集群任务的整体执行效率,hadoop已经自带支持一些比较常用的压缩,如gz,bz等,使用hadoop checknative -a命令可以查看你的hadoop支持几种压缩格式: 

伦理片 http://www.dotdy.com/

当今大多数的互联网公司对于hadoop压缩的选型,通常是Snappy和LZO,两者都有不错的压缩比和解压速度,关于具体的对比,

本篇主要介绍在Hbase中使用snappy压缩,如果你的hadoop已经安装了snappy,那么接下来就会非常简单了,如果你的hadoop集群还不支持snappy压缩,那么也没关系,

版本介绍: 
Apache Hadoop2.7.1 
Apache Hbase0.98.12 

安装测试步骤如下: 
(1)给hadoop集群正确安装snappy压缩 
(2)拷贝hadoop/lib下的native下的所有so文件和hadoop-snappy-0.0.1-SNAPSHOT.jar到hbase/lib下面 
(3)如果有多台机器,每台机器都要拷贝分发 
(4)拷贝完成后,重启hbase集群 
(5)执行命令验证snappy是否验证成功,如果打印succes,即安装成功 

Java代码   收藏代码
  1. [webmaster@Hadoop-0-187 logs]$ hbase org.apache.hadoop.hbase.util.CompressionTest /user/webmaster/word/in/tt2  snappy                   
  2. 2015-12-30 15:14:11,460 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available  
  3. SLF4J: Class path contains multiple SLF4J bindings.  
  4. SLF4J: Found binding in [jar:file:/ROOT/server/hbase/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  5. SLF4J: Found binding in [jar:file:/ROOT/server/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  6. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.  
  7. 2015-12-30 15:14:12,607 INFO  [main] util.ChecksumType: Checksum using org.apache.hadoop.util.PureJavaCrc32  
  8. 2015-12-30 15:14:12,609 INFO  [main] util.ChecksumType: Checksum can use org.apache.hadoop.util.PureJavaCrc32C  
  9. 2015-12-30 15:14:12,916 INFO  [main] compress.CodecPool: Got brand-new compressor [.snappy]  
  10. 2015-12-30 15:14:12,923 INFO  [main] compress.CodecPool: Got brand-new compressor [.snappy]  
  11. 2015-12-30 15:14:12,932 ERROR [main] hbase.KeyValue: Unexpected getShortMidpointKey result, fakeKey:testkey, firstKeyInBlock:testkey  
  12. 2015-12-30 15:14:13,218 INFO  [main] compress.CodecPool: Got brand-new decompressor [.snappy]  
  13. SUCCESS  



确认成功后,执行hbase shell命令行,采用下面的几个命令,建2个表,一个指定snappy压缩,另外一个不启动压缩,最后插入几十条数据对比结果。 


Java代码   收藏代码
  1. //创建一个表,指定snappy压缩  
  2. create 'tsnappy', { NAME => 'f', COMPRESSION => 'snappy'}  
  3. //创建一个表,不启动压缩  
  4. create 'nosnappy', { NAME => 'f'}  
  5. //查看表描述  
  6. describe 'tsnappy'  
  7. //put一条数据  
  8. put 'tsnappy''row1''f:col1''value'  
  9. //统计hbase表数据  
  10. count 'tsnappy'  
  11. //查看数据  
  12.  scan 'tsnappy'  
  13. truncate 'tsnappy' 清空表里面的数据  
  14. //修改已有的表为snappy压缩  
  15. alter apData,{NAME=>'cf1',COMPRESSION=>'snappy'}  
  16. //禁用表  
  17. disable 'my_table'  
  18. //修改支持压缩  
  19. alter 'my_table', {NAME => 'my_column_family', COMPRESSION => 'snappy'}  
  20. //激活表  
  21. enable 'my_table'  


然后插入50行数据,一个字段,内容大概4M,附件里面有Hbase操作的Java类,插入数据完整后,执行命令: 
hadoop fs -du -s -h /hbase/data/default/*对比查看开启压缩和不开启压缩索占的存储空间,大约为1:9,当然这也和自己的存储的数据有关系,总体来说,还是不错的。 





最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs) 
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访! 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值