hbase优化之region合并和压缩
HBASE操作:(一般先合并region然后再压缩)
一 、Region合并: merge_region 'regionname1','regionname2' ,'true' --true代表强制合并,一般要加上
一般要是将小文件根据配置的最大上限进行合并,合并后最好清理一下hdfs
二、Region 压缩:
我们以test表为例:
我们先创建一张不含任何压缩格式的test表,并且向其导入10多G的数据
$ hadoop fs -du -h /hbase/data/default/ --查询region的文件大小
12.2 G /hbase/data/default/test
我们可以看到,在未压缩之前,test表的数据在hdfs上一共占用了12.2G的磁盘空间。
1. disable test表:
hbase> disable 'test'
修改压缩格式:
2. hbase> alter 'test', NAME => 'c', COMPRESSION => 'snappy'
需要注意的是,修改压缩格式时,必须一个列族一个列族的改。
3. enable test表:
hbase> enable 'test'
enable之后,还需要做一次大合并才能让压缩格式生效:
4. hbase> major_compact 'test'
需要注意的是,千万不要在表繁忙期间执行大合并操作。
describe test表看一下有没有生效
还是很可观的大概可以减少原来两倍左右的空间占用