HDFS删除文件

一.删除HDFS上的文件

需求:删除HDFS上的一个文件

代码:

-- 查看文件
hadoop fs -ls /user/hive/warehouse
-- 删除文件
hadoop fs -rm  /user/hive/warehouse/test.txt

测试记录:

[root@hp1 hue-httpd]# hadoop fs -ls /user/hive/warehouse
Found 2 items
drwxrwxrwt   - root hive          0 2020-11-25 19:15 /user/hive/warehouse/test.db
-rw-rw-rw-   3 root hive         16 2020-11-25 14:53 /user/hive/warehouse/test.txt
[root@hp1 hue-httpd]# 
[root@hp1 hue-httpd]# hadoop fs -rm /user/hive/warehouse/test.txt
20/11/26 10:35:24 INFO fs.TrashPolicyDefault: Moved: 'hdfs://nameservice1/user/hive/warehouse/test.txt' to trash at: hdfs://nameservice1/user/root/.Trash/Current/user/hive/warehouse/test.txt
[root@hp1 hue-httpd]# 
[root@hp1 hue-httpd]# hadoop fs -ls /user/root/.Trash/Current/user/hive/warehouse/
Found 1 items
-rw-rw-rw-   3 root hive         16 2020-11-25 14:53 /user/root/.Trash/Current/user/hive/warehouse/test.txt

从上面测试的记录可以看到, 从hdfs上删除的文件,并没有直接被删除,而是移动到了回收站。
如果需要跳过回收站,直接删除,可以使用-skipTrash参数

-- 跳过回收站  直接进行删除
hadoop fs -rm -skipTrash /user/hive/warehouse/test.txt

二.HDFS的回收站

生产环境的hive中,经常大批量的加载及运算数据,例如清理一些临时表。但是清理了表之后,发现hdfs的空间并没有相对应的减少。如果需要收缩空间,可以考虑清空回收站。

生产环境谨慎使用,容易出问题

-- 清空hdfs的回收站
hdfs dfs -expunge

测试记录:
因为root权限不够,先通过sudo -u hdfs 切换到hdfs用户下

[root@hp1 hue-httpd]# sudo -u hdfs hdfs  dfs -expunge     
[root@hp1 hue-httpd]# 

参考

1.《Hadoop权威指南》
2.https://blog.csdn.net/abyslll/article/details/88313961

猜你喜欢

转载自blog.csdn.net/u010520724/article/details/114643168