hbase给columnFamily 增加压缩属性的问题

原先我们hbase表的某个family没有设置COMPRESSION属性,导致表短时间变得非常大,磁盘空间日益不足。现在想给表设置COMPRESSION => 'snappy'属性。

网上找了几个教程,都是要求先disable表,alter,在enable,在compact。但是我们这个表流量比较大,我不希望停表处理,想运行时就执行。

我找了个表测试了一下,修改表之前,表大小98M,直接执行
 
alter "xxx",NAME => "xxxfamily",COMPRESSION => 'snappy'
 
然后查看表大小
hadoop fs -du -h /hbase/data/xxx
 
发现表小了一点。
 
然后执行压缩:major_compact "xxx"
 
再看表大小:hadoop fs -du -h /hbase/data/xxx
 
小了好几倍。
 
所以我想问下大佬们,是不是不用disable表就能生效压缩?还有hadoop fs -du -h  这个命令看到的磁盘占用大小是压缩后的还是压缩前的?是生效的吗?
 
 
已邀请:

libis - HBase爱好者

赞同来自:

不需要disable就可以改变schema 但实际生效需要执行major_compact 

要回复问题请先登录注册