记录一次hadoop的空间清理

使用CDH遇到机器并没有跑什么生产项目,但是产生了将近300G/每个节点的数据。
过程中使用hadoop fs -du -h / 来查看hadoop根目录下文件的空间占用量,在这里看到spark占用了差不多1.3T左右的磁盘空间。

运行命令会提示用户没有权限,进去CDH下面的HDFS的配置,搜索dfs.permissions,把检查HDFS权限的√去掉,然后权限就打开了。

同时确定spark并没有需要落定在本地的生产数据,从而确定占用空间的都是代码运行的时候产生的运行文件。
确定可以删除,那就果断删了它们,这里使用hdfs -rm -r /user/**/spark/ 把这些无用文件都删掉。
这里就显示所有的文件是被move到hadoop的回收站。
接下来进入回收站,使用hadoop dfs -expunge 显示标记了checkpoint,但是没有删除记录。
等待大约两分钟后发现并没有删除,果断进入回收站路径,hadoop fs -rmr /user/***/.Trash命令直接删除回收站。
查看文件的占用量发现已经清空了,但是CDH并没有刷新出来,那好,回头去restart一下CDH的agent,再来看,发现已经刷新了,显示占用量之后200G左右。

记录一下可能出现的问题:删除的时候直接把.Trash文件删除了,如果下次出现找不到这个文件,可以试着自行新建一个/user/root/.Trash。

pss:因为删除的时候把spark下面的文件都给删除了,所以运行spark的时候报错说找不到文件/user/spark/applicationHistory。我灵光一闪,进去hdfs -mkdir /user/spark/applicationHistory 自己创建了一个文件,然后。。他就好了。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive是一个基于Hadoop的数据仓库工具,用于存储、管理和查询大规模数据集。如果你需要清理Hive中占用磁盘空间的数据,可以采取以下几个步骤: 1. **删除临时表和分区**:Hive经常创建临时表和分区来优化查询过程,这些不需要长期保留。运行`DROP TEMPORARY TABLE IF EXISTS table_name CASCADE;`来删除临时表,`MSCK REPAIR TABLE table_name`来检查并修复分区。 2. **清理无用的分区**:如果你有大量分区,并不是所有分区都包含有效数据,可以使用`MSCK PARTITIONS`命令找出哪些分区不存在,然后手动删除,如`ALTER TABLE table_name DROP PARTITION (partition_key=value)`。 3. **清理垃圾数据**:使用`ANALYZE TABLE`命令更新表的元数据信息,如果存在未使用的文件,Hive会自动尝试清理,但这个过程可能需要一些时间。 4. **清理历史任务日志**:Hive Metastore存储着各个任务的历史记录,这部分也会占用空间清理旧的日志可以使用`hdfs dfs -rmr /path/to/hive/metastore_db/logs/*`. 5. **查看和限制Hive数据大小**:你可以通过`SHOW DATABASES LIKE 'default';`查看数据库,然后用`DESCRIBE DB default;`获取大小,或者设置Hive的`hive.metastore.warehouse.dir`属性来限制数据目录的最大尺寸。 6. **运行空间清理脚本**:有些Hadoop发行版提供自动化脚本来定期清理,比如在HDFS上运行`hadoop fs -du -s <your_hive_data_path>`来查找大文件,然后手工或自动化删除。 记得在操作前备份重要数据,避免意外丢失。清理过程中,谨慎处理敏感信息的权限管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值