首页 > 其他分享 >12、HDFS Trash垃圾桶回收介绍与示例

12、HDFS Trash垃圾桶回收介绍与示例

时间:2023-05-15 19:06:25浏览次数:38  
标签:HDFS 12 示例 09 hadoop alanchan fs test Trash




文章目录

  • Hadoop系列文章目录
  • 一、介绍
  • 二、HDFS Trash功能开启
  • 1、关闭HDFS集群
  • 2、修改core-site.xml文件
  • 3、同步集群配置文件
  • 4、启动HDFS集群
  • 三、HDFS Trash功能验证
  • 1、删除文件并验证
  • 2、不进回收站的删除
  • 3、从Trash中恢复文件
  • 4、清空Trash



本文主要介绍HDFS Trash垃圾桶回收。
前提依赖:hadoop可以正常使用。
本文分为三部分,即介绍、配置以及验证。

一、介绍

  • 默认情况下,HDFS中Trash是没有开启的,删除操作的数据将会被直接删除
  • 启用Trash功能后,从HDFS中删除某些内容时,文件或目录不会立即被清除,它们将被移动到回收站Current目录中(/user/${username}/.Trash/current)
  • .Trash中的文件在用户可配置的时间延迟后被永久删除
  • 可以简单地将回收站里的文件移动到.Trash目录之外的位置来恢复回收站中的文件和目录
  • Trash Checkpoint仅仅是用户回收站下的一个目录,用于存储在创建检查点之前删除的所有文件或目录
  • Trash Checkpoint目录在/user/${username}/.Trash/{timestamp_of_checkpoint_creation}
  • 最近删除的文件被移动到回收站Current目录,并且在可配置的时间间隔内,HDFS会为在Current回收站
  • 目录下的文件创建检查点/user/${username}/.Trash/<日期>,并在过期时删除旧的检查点

二、HDFS Trash功能开启

按照以下步骤进行操作,在server1上alanchan用户执行stop-dfs.sh命令。

1、关闭HDFS集群

[alanchan@server1 ~]$ jps
15154 QuorumPeerMain
32722 Jps
19075 NameNode
20780 DFSZKFailoverController
28893 ResourceManager
[alanchan@server1 ~]$ stop-dfs.sh
Stopping namenodes on [server1 server2]
Stopping datanodes
Stopping journal nodes [server4 server3 server2]
Stopping ZK Failover Controllers on NN hosts [server1 server2]
[alanchan@server1 ~]$ jps
15154 QuorumPeerMain
28893 ResourceManager
1679 Jps

2、修改core-site.xml文件

<!-- 增加垃圾桶机制 单位是分钟 -->
	<property>    
		<name>fs.trash.interval</name>    
		<value>1440</value>
	</property>
	<property>    
		<name>fs.trash.checkpoint.interval</name>    
		<value>0</value>
	</property>
#fs.trash.interval:回收站中的文件多少分钟后会被系统永久删除。如果为零,Trash功能将被禁用。
#fs.trash.checkpoint.interval:前后两次检查点的创建时间间隔(单位也是分钟),新的检查点被创建后,随之旧的检查点就会被系统永久删除。如果为零,则将该值设置为fs.trash.interval的值

3、同步集群配置文件

scp -r /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop
scp -r /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop
scp -r /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop

4、启动HDFS集群

[alanchan@server1 ~]$ start-dfs.sh
Starting namenodes on [server1 server2]
Starting datanodes
Starting journal nodes [server4 server3 server2]
Starting ZK Failover Controllers on NN hosts [server1 server2]
[alanchan@server1 ~]$ jps
16561 NameNode
15154 QuorumPeerMain
17187 DFSZKFailoverController
28893 ResourceManager
17519 Jps

至此已经完成了环境的配置,接下来将进行验证。

三、HDFS Trash功能验证

1、删除文件并验证

开启Trash功能后,正常执行删除操作,文件实际并不会被直接删除,而是被移动到了垃圾回收站

[alanchan@server1 ~]$ hadoop fs -ls /test
Found 3 items
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 11:32 /test/data_o
-rw-r--r--   3 alanchan supergroup       8728 2022-09-13 09:19 /test/temp.txt
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 17:01 /test/test2

#文件已经移动到垃圾桶中
[alanchan@server1 ~]$ hadoop fs -rm /test/temp.txt
2022-09-13 09:20:14,311 INFO fs.TrashPolicyDefault: Moved: 'hdfs://HadoopHAcluster/test/temp.txt' to trash at: hdfs://HadoopHAcluster/user/alanchan/.Trash/Current/test/temp.txt

#文件已经删除
[alanchan@server1 ~]$ hadoop fs -ls /test
Found 2 items
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 11:32 /test/data_o
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 17:01 /test/test2

#在垃圾桶内查看该文件
[alanchan@server1 ~]$ hadoop fs -ls /user/alanchan/.Trash/Current/test
Found 1 items
-rw-r--r--   3 alanchan supergroup       8728 2022-09-13 09:19 /user/alanchan/.Trash/Current/test/temp.txt

12、HDFS Trash垃圾桶回收介绍与示例_hdfs

2、不进回收站的删除

希望直接把文件删除,不需要再经过Trash回收站了

可以在执行删除操作的时候添加一个参数:-skipTrash.

[alanchan@server1 ~]$ hadoop fs -ls /test
Found 3 items
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 11:32 /test/data_o
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 17:01 /test/test2
-rw-r--r--   3 alanchan supergroup       1408 2022-09-13 09:24 /test/user.sql
#删除文件
[alanchan@server1 ~]$ hadoop fs -rm -skipTrash /test/user.sql
Deleted /test/user.sql
[alanchan@server1 ~]$ hadoop fs -ls /test
Found 2 items
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 11:32 /test/data_o
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 17:01 /test/test2

3、从Trash中恢复文件

回收站里面的文件,在到期被自动删除之前,都可以通过命令恢复出来

使用mv、cp命令把数据文件从Trash目录下复制移动出来就可以了

4、清空Trash

除了fs.trash.interval参数控制到期自动删除之外,用户还可以通过命令手动清空回收站,释放HDFS磁盘存储空间

删除整个回收站目录,将会清空回收站

HDFS提供了一个命令行工具来完成这个工作:hadoop fs -expunge。该命令立即从文件系统中删除过期的检查点

[alanchan@server1 ~]$ hadoop fs -ls /user
Found 1 items
drwx------   - alanchan supergroup          0 2022-09-13 09:20 /user/alanchan
[alanchan@server1 ~]$ hadoop fs -expunge /user
2022-09-13 09:28:30,888 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://HadoopHAcluster/user/alanchan/.Trash
2022-09-13 09:28:30,888 INFO fs.TrashPolicyDefault: TrashPolicyDefault#deleteCheckpoint for trashRoot: hdfs://HadoopHAcluster/user/alanchan/.Trash
2022-09-13 09:28:30,896 INFO fs.TrashPolicyDefault: TrashPolicyDefault#createCheckpoint for trashRoot: hdfs://HadoopHAcluster/user/alanchan/.Trash
2022-09-13 09:28:30,940 INFO fs.TrashPolicyDefault: Created trash checkpoint: /user/alanchan/.Trash/220913092830

以上,完成了回收站的介绍、配置以及验证。


标签:HDFS,12,示例,09,hadoop,alanchan,fs,test,Trash
From: https://blog.51cto.com/alanchan2win/6280442

相关文章