内容纲要
概要描述
当数据节点磁盘剩余空间严重不足时,可能会导致该节点上的服务起不来,影响集群稳定以及业务的正常运行。
此时应当扩容节点或者为数据节点添加新的磁盘
如果在短期内无法扩容,而服务器磁盘空间又严重不足的情况,可以采用本文介绍的方法来释放一部分磁盘空间,优先保证集群的运行。
详细说明
- hbase shell 中 truncate 清空无用表的数据
- hdfs 命令删除回收站数据
- df 确认空间是否释放
1.hbase shell 中 truncate 清空无用表的数据
访问任意一台部署了 hyperbase 的 regionserver 服务的服务器,然后执行下面命令
操作需要使用 hbase 用户,所以首先 kinit 安全
# kinit hbase/$(hostname) -kt /etc/hyperbase1/hbase.keytab
然后进入hbase shell页面,执行操作
# hbase shell
truncate命令会清理全部表数据(不会清理表结构),此操作无法回滚恢复,操作前务必确认清楚>
# truncate 'CLD_TFC_PASS_PIC'
2.hdfs 命令删除回收站数据
truncate 表之后,数据会在 archive 中保留24h,如果希望快速释放空间,需在手动删除 .archive 目录中的数据,并清理 .trash 目录。
这一步操作需要使用 hdfs 用户,所以首先 kinit 安全
# kinit hdfs/$(hostname) -kt /etc/hdfs1/hdfs.keytab
truncate 清理数据后, HFile 会移到 .archive 目录中
需要删除 .archive 目录中的数据,并清理 .trash 目录快速释放空间
# hdfs dfs -rm -r /hyperbase1/archive/data/default/CLD_TFC_PASS_PIC
# hdfs dfs -rm -r /user/hdfs/.Trash/current/hyperbase1
3.df 确认空间是否释放
清理完毕后,df -h 确认磁盘空间是否释放
访问之前磁盘使用率较高的节点,执行命令查看目前的磁盘使用率
# df -h