如何通过清理无用的表的数据来释放磁盘空间

  交警集成指挥平台
内容纲要

概要描述

当数据节点磁盘剩余空间严重不足时,可能会导致该节点上的服务起不来,影响集群稳定以及业务的正常运行。

此时应当扩容节点或者为数据节点添加新的磁盘

如果在短期内无法扩容,而服务器磁盘空间又严重不足的情况,可以采用本文介绍的方法来释放一部分磁盘空间,优先保证集群的运行。


详细说明

  1. hbase shell 中 truncate 清空无用表的数据
  2. hdfs 命令删除回收站数据
  3. 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

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。