HDFS 快照管理实训实验
一、实验目标
- 掌握如何启用和禁用 HDFS 目录的快照功能。
- 学会创建、重命名和删除 HDFS 快照。
- 理解如何利用快照进行数据恢复。
- 掌握如何查看快照列表和比较不同快照之间的差异。
二、实验环境
- 已搭建好的 Hadoop 集群(伪分布式或完全分布式均可)。
- 已启动 HDFS 服务。
- 一个用于操作的 HDFS 用户(例如
zhangsan)。
三、实验步骤
步骤一:环境准备与启用快照
创建实验目录和文件:
在 HDFS 上为本次实验创建一个专用的目录(例如/snapshot_test),并在其中创建一个初始文件。1
2
3
4
5
6
7
8在 HDFS 上创建目录
hdfs dfs -mkdir /snapshot_test
创建一个名为 initial_data.txt 的文件并写入内容
echo "This is the initial data." | hdfs dfs -put - /snapshot_test/initial_data.txt
查看目录内容,确认文件创建成功
hdfs dfs -ls /snapshot_test启用目录快照功能:
使用dfsadmin命令将刚刚创建的目录设置为可快照目录。1
hdfs dfsadmin -allowSnapshot /snapshot_test
预期输出:
Allowing snaphot on /snapshot_test succeeded
步骤二:创建与查看快照
创建第一个快照:
在/snapshot_test目录上创建一个名为snap_v1的快照。1
hdfs dfs -createSnapshot /snapshot_test snap_v1
预期输出:
Created snapshot /snapshot_test/.snapshot/snap_v1查看快照列表:
使用lsSnapshottableDir命令查看当前用户有权限的所有可快照目录及其快照数量。1
hdfs lsSnapshottableDir
在输出结果中找到
/snapshot_test目录,并确认其快照数量(numSnapshots)为1。模拟数据变更:
向/snapshot_test目录中添加一个新文件,以模拟数据的日常更新。1
2
3
4
5创建一个新文件
echo "This is some new data." | hdfs dfs -put - /snapshot_test/new_data.txt
查看当前目录内容,确认新文件已添加
hdfs dfs -ls /snapshot_test创建第二个快照:
在数据变更后, 为/snapshot_test目录创建第二个名为snap_v2的快照。1
预期输出:
Created snapshot /snapshot_test/.snapshot/snap_v2
步骤三:比较快照差异
- 生成快照差异报告:
使用snapshotDiff命令比较snap_v1和snap_v2两个快照之间的差异。预期输出会显示根目录1
hdfs snapshotDiff /snapshot_test snap_v1 snap_v2
.被修改(M),并且有一个新文件new_data.txt被添加(+)。
步骤四:数据恢复操作
模拟数据误删:
删除当前目录下的new_data.txt文件,模拟用户的误操作。1
预期输出:
Deleted /snapshot_test/new_data.txt从快照中恢复数据:
从snap_v2快照中复制new_data.txt文件,将其恢复到原目录。1
验证数据恢复:
再次查看/snapshot_test目录,确认new_data.txt文件已成功恢复。1
hdfs dfs -ls /snapshot_test
步骤五:重命名与删除快照
重命名快照:
将snap_v2重命名为snap_before_deletion,使其更具描述性。1
删除快照:
删除不再需要的snap_v1快照。1
步骤六:禁用快照功能
尝试直接禁用(预期失败):
尝试直接禁用/snapshot_test目录的快照功能。1
hdfs dfsadmin -disallowSnapshot /snapshot_test
预期输出:
disallowSnapshot: The directory /snapshot_test has snapshot(s). Please redo the operation after removing all the snapshots.(因为目录下仍有snap_before_deletion快照)。删除所有快照后禁用:
先删除最后一个快照snap_before_deletion,然后再禁用目录的快照功能。1
再次禁用快照功能
1
预期输出:
Disallowing snaphot on /snapshot_test succeeded
四、实验总结与思考
总结:通过本实验,你成功地完成了从启用快照、创建快照、查看差异、数据恢复到最终清理快照和禁用功能的全过程。这模拟了在实际生产环境中利用 HDFS 快照进行数据保护和灾难恢复的核心工作流。