环境信息:
HBase 1.2.2
需求:
一个已经存在的表,修改其压缩方式,并对之前的旧数据生效
实现:
1、进入shell界面--hbase shell
2、停用表--disable 'geomesa_hbase(表名)'
3、修改压缩方式:由于压缩方式是按照列族指定的,所以修改压缩方式的时候,需要指定列族--alter 'geomesa_hbase(表名)', NAME => 'm(列族名)', COMPRESSION => 'snappy(压缩方式)'
4、启用表--enable 'geomesa_hbase(表名)'
5、查看表属性--desc 'geomesa_hbase(表名)'
可以看到snappy压缩的配置已经生效
6、但是这只是能让新数据使用SNAPPY压缩方式,如果旧数据也要采用压缩的话,需要执行--major_compact 'geomesa_hbase(表名)',由于该操作会给集群造成比较大的压力,所以建议在凌晨或者业务不忙的时候执行
7、执行完毕后可以去hdfs上验证压缩是否生效--hadoop fs -du -s -h /hbase/data/default(namespace名称)/geomesa_hbase(表名)
8、在某些情况下,如果你要删除压缩方式,步骤和上述7步一致,唯一不一样的是第3步修改为--alter 'geomesa_hbase(表名)', NAME => 'm(列族名)', COMPRESSION => 'none'