我们发现用opentsdb向hbase写数据之后,磁盘占用率飙升得很快,我们存的业务数据只用保存一个月的即可,了解hbase的TTL机制可以清除相关表、相关行的超时数据,之前在数据备份时,我介绍了,opentsdb在hbase里面存储的数据主要有4个表,tsdb 、tsdb-meta 、tsdb-tree 、tsdb-uid。其中tsdb是元数据表,存储的内容多,由此,清除数据主要清除tsdb即可。
参考文章:
https://blog.csdn.net/czs1130/article/details/79878259
https://www.iteye.com/blog/greatwqs-1741330
具体我都不做过多解释,我这里直接操作
查看磁盘
<!-- 查看整台服务器的硬盘使用情况--> df -h <!--查看内存、磁盘--> du -sh *
设置tsdb的TTL
<!--进入shell命令--> hbase shell <!--查看所有表--> list <!--查看tsdb的结构--> describe 'tsdb' <!--禁用表 tsdb--> disable 'tsdb' <!--修改时间--> alter 'tsdb' , {NAME=>'t',TTL=>'1296000'} <!--再次查看tsdb的结构--> describe 'tsdb'
检查磁盘占用
发现并未减少,那就是MinVersion的影响了。
修改MinVersion
alter 'tsdb' , {NAME=>'t', MIN_VERSIONS=>'0'}
enable 'tsdb'