zoukankan      html  css  js  c++  java
  • HBase修改压缩格式及Snappy压缩实测分享

    一、要点

    有关Snappy的相关介绍可参看Hadoop压缩-SNAPPY算法,如果想安装Snappy,可以参看Hadoop HBase 配置 安装 Snappy 终极教程

    1. HBase修改Table压缩格式步骤

    2. 实测结果分享

    二、HBase修改Table压缩格式步骤

    修改HBase压缩算法很简单,只需要如下几步:

    1. hbase shell命令下,disable相关表:

    1
    disable 'test'

    实际产品环境中,’test’表可能很大,例如上几十T的数据,disable过程会比较缓慢,需要等待较长时间。disable过程可以通过查看hbase master log日志监控。

    2. 修改表的压缩格式

    1
    alter 'test', NAME => 'f', COMPRESSION => 'snappy'

    NAME即column family,列族。HBase修改压缩格式,需要一个列族一个列族的修改。而且这个地方要小心,别将列族名字写错,或者大小写错误。因为这个地方任何错误,都会创建一个新的列族,且压缩格式为snappy。当然,假如你还是不小心创建了一个新列族的话,可以通过以下方式删除:

    1
    alter 'test', {NAME=>'f', METHOD=>'delete'}

    同样提醒,别删错列族,否则麻烦又大了~

    3. 重新enable表

    1
    enable 'test'

    4. enable表后,HBase表的压缩格式并没有生效,还需要一个动作,即HBase major_compact

    1
    major_compact 'test'

    该动作耗时较长,会对服务有很大影响,可以选择在一个服务不忙的时间来做。

    describe一下该表,可以看到HBase 表压缩格式修改完毕。

    二、 实测结果分享

    1. 线上有一个稍微大些的表,压测前的大小是

    1
    2
    [xxxx]hadoop fs -du /hbase/tablename
    37225209575949    hdfs://xxxx:9000/hbase/tablename

    也即33.85613088171249T

    2. 等最终major_compact完毕后,数据大小为

    [xxxx]hadoop fs -du /hbase/tablename
    14910587650937    hdfs://xxxx:9000/hbase/tablename

    即剩余13.56110046884805T,压缩掉20.29503041286444T

    3. 实测情况下,remaining为:

    13.56110046884805/33.85613088171249 = 40.055%

    跟网上流传的最好效果22.2%还是有一定差距的。但是Google Snappy官网上也说,为达到更高的压缩速度,Snappy允许损失一些压缩率。

    有一点需要说明,因为是线上服务,所以在修改压缩格式后,至comact结束,中间有入库操作,大概有一周到两周的数据入库。也就是说,实际值要比40.055%小一些,但是应该影响不太大。

  • 相关阅读:
    Quartz
    WebService
    JavaMail
    安装phpnow服务[Apache_pn]提示失败的解决方法
    idea安装激活
    csdn下载
    java解析json串常识
    Oracle错误——ORA-03113:通信通道的文件结尾
    SSM(Maven集成)
    SpringMVC的拦截器
  • 原文地址:https://www.cnblogs.com/shitouer/p/hbase-table-alter-compression-type-and-snappy-compression-compare.html
Copyright © 2011-2022 走看看