1、进入hbase shell,查看具体表desc 'tablename'
2、停用表disable 'tablename'
3、更改表的TTL(time to live)值(一个int值,单位是秒)alter 'tablename',{NAME=>'columnName', TTL => '604800'},这就表示这个表的数据只保存七天
4、enable 'tablename'重新启用表
此时,如果查看df -lh,你会发现数据还没有被删除,因为空间还没有释放,但是在hbase shell之中你已经查询不到这些数据了。
所以最后需要进入到Cloud Manager,点击HBase的“配置”菜单栏
hbase 配置.png
搜索major
hbase major compaction.png
如图,默认最大化压缩七天一次,请根据自己服务器的情况缩短这个值,值越小,删除数据越快,但服务器读写压力也会变大,我自己设成了1天一次。
设置完成后重启服务器,硬盘空间成功释放
在重启服务前如yarn上有服务,建议先停止服务,然后重新HBASE。