CDH服务器存储空间清理 #
一、背景 #
单机CDH安装大数据服务,硬盘300G
生产环境由于一台机器的硬盘只有300G,在视图库服务运行一段时间之后就遇到硬盘写满的情况,但是后面去清理数据,HBase的数据也清空了,Kafka里面的缓存也清空了,dfs还占用100多G,这里用来记录一下用hadoop命令清理存储空间的过程
二、查看机器存储容量 #
[root@cm ansible]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 284G 210G 75G 74% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 284G 210G 75G 74% /data
shm 64M 0 64M 0% /dev/shm
tmpfs 7.8G 17M 7.8G 1% /run
cm_processes 7.8G 8.8M 7.8G 1% /run/cloudera-scm-agent/process
最后查到dfs占用大部分空间
[root@20-3-13-47 pqcdh]# du -sh dfs
118G dfs
三、Hadoop清理操作 #
进入容器 docker exec -it xxxx bash
,再进行后续的相关命令操作
功能 | 命令 | 备注 |
---|---|---|
查看文件列表 | hadoop fs -ls / | |
查看大小 | hadoop fs -du -h /user/spark/applicationHistory | 查看文件夹所占空间 |
删除文件 | hdfs dfs -rm -skipTrash | 删除HDFS数据的话,后期就无需清空HDFS回收站 |
清空回收站 | hdfs dfs -expunge | 注:执行完命令后,回收站的数据不会立即被清理,而是先打了一个checkpoint。显示的是一分钟后清除。 |
四、找到原因 #
因为之前查原因的时候HBase的数据也清空了,Kafka里面的缓存也清空了,该看的地方都看了,DFS目录还是占用很大的空间,最后搜索资料查到了Spark
Spark任务写入占用大量空间 #
如果通过spark任务写入大量数据到大数据平台,那么spark任务历史记录会占很大空间,因此需要我们定期清理
- 清除掉 /user/spark/applicationHistory/*路径下的文件
- 清掉spark任务执行历史记录后再把回收站清理一下
[root@cm ansible]# hadoop fs -du -h /user/spark/applicationHistory
509.0 M 1.5 G /user/spark/applicationHistory/local-1725356770159.inprogress
3.3 G 10.0 G /user/spark/applicationHistory/local-1725502845096.inprogress
1.0 G 3.1 G /user/spark/applicationHistory/local-1726044005615.inprogress
125.4 K 376.3 K /user/spark/applicationHistory/local-1726208818784.inprogress
67.7 G 203.1 G /user/spark/applicationHistory/local-1728645735215.inprogress
清除了spark任务记录之后,spark的日志文件也占用了很大的存储
[root@cm ansible]# hadoop fs -du -h /user/spark
0 0 /user/spark/applicationHistory
43.6 G 130.8 G /user/spark/driverLogs
这里我们需要把数据都清理掉
hadoop dfs -rm -skipTrash /user/spark/applicationHistory/*
hadoop dfs -rm -skipTrash /user/spark/driverLogs/*
清除之后,机器的存储总算释放出来了
[root@cm ansible]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 284G 93G 192G 33% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 284G 93G 192G 33% /data
shm 64M 0 64M 0% /dev/shm
tmpfs 7.8G 17M 7.8G 1% /run
cm_processes 7.8G 9.3M 7.8G 1% /run/cloudera-scm-agent/process
五、遇到的问题 #
root用户登录没办法进行数据的删除,会报错误`Access denied for user root. Superuser privilege is required`
clouder manager 在web上操作流程: 增加角色:HDFS->配置->检查HDFS 权限dfs.permissions这项不要打勾->保存更改->重启hdfs 之后就可以用root用户