
Hadoop的HDFS除了最基本的上传数据和下载数据的功能以外还提供了很多高级特性用于方便使用和操作主要有回收站、快照、配额管理、安全模式、权限管理同时从Hadoop 3.x开始还提供了纠删码技术。视频讲解如下【赵渝强老师】Hadoop HDFS的回收站和快照下面分别介绍HDFS提供的回收站和快照。一、 HDFS的回收站在默认的情况下HDFS的回收站功能是关闭的。可以通过在core-site.xml中添加fs.trash.interval来配置时间阀值从而启用HDFS的回收站。例如propertynamefs.trash.interval/namevalue1440/value/property!-- 由于修改了HDFS的配置文件需要重启HDFS。 --启用回收站后当删除HDFS文件时其本质是将要删除的文件或者目录放入回收站对应的目录。例如当删除/input/data.txt文件时将看到如下的日志信息。2026-01-15 20:55:31,387 INFO fs.TrashPolicyDefault: Moved:hdfs://bigdata111:9000/input/data.txtto trash at: hdfs://bigdata111:9000/user/root/.Trash/Current/input/data.txt回收站里的文件可以快速恢复。但当回收站里文件的存放时间超过返个阈值就被彻底删除并且释放占用的数据块。例如在上面的设置中设置的时间阈值是1440分钟即一天的时间。下面列举了一些HDFS回收站的基本操作。1查看回收站。hdfs dfs-lsr/user/root/.Trash/Current2从回收站中恢复。hdfs dfs-cp/user/root/.Trash/Current/input/data.txt/input3清空回收站。hdfs dfs-expunge二、 HDFS的快照一个快照Snapshot是一个全部文件系统、或者某个目录在某一时刻的镜像。这里其实可以把HDFS的快照理解成是HDFS提供的一种备份机制。快照应用在以下场景中防止用户的错误操作备份试验/测试灾难恢复由于HDFS的快照功能是针对的目录因此需要首先使用HDFS的管理员命令开启目录的快照功能再使用HDFS的操作命令创建目录的快照。#与快照相关的HDFS管理命令[-allowSnapshot snapshotDir][-disallowSnapshot snapshotDir]#与快照相关的HDFS操作命令[-createSnapshot snapshotDir[snapshotName]][-deleteSnapshot snapshotDir snapshotName][-renameSnapshot snapshotDir oldName newName]下面通过具体的步骤来演示如何使用HDFS的快照。1开启/input目录的快照功能。hdfs dfsadmin-allowSnapshot/input2为/input目录创建第一个快照。hdfs dfs-createSnapshot/input bk_input_20260115_01# 在创建HDFS快照的时候最好遵循一个良好的命名规则。# 例如这里创建的快照名称为bk_input_20260115_01# 表示在2026年1月15日为input目录创建的第一个快照。3上传一个新的文件到/input目录如data1.txt。hdfs dfs-put data1.txt/input4为/input目录创建第二个快照。hdfs dfs-createSnapshot/input bk_input_20260115_025对比/input目录的两个快照。hdfs snapshotDiff/input bk_input_20260115_01 bk_input_20260115_02# 输出的信息如下Difference between snapshot bk_input_20260115_01 and snapshot bk_input_20260115_02 under directory/input: M../data1.txt# 通过对比快照可以看出第二个快照比第一个快照多了一个文件data1.txt。6通过HDFS的Web Console也可以查看快照的相关信息如下图所示。