由于前期hbase建表没有指定压缩,后期磁盘增长太快,决定使用snappy压缩。
具体解决步骤如下:
- disable ‘tableName’
- alter ‘tableName’,{NAME=>‘cf’,compression=>‘snappy’}
- enable ‘tableName’
- major_compact ‘tableName’
在此主要讲解一下major_compact执行过程
执行major_compact时,hbase会将数据放进archive目录,压缩完成后,将archive目录数据删除,释放磁盘空间。需要注意的是,执行major_compact时,磁盘空间会先变大,archive目录中源数据被删除时,磁盘空间变小。
注意:执行compact命令时,会占用大量磁盘io,确保集群负载较低时执行。