作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:
Web服务器
代理服务器
ZooKeeper
Kafka
RabbitMQ
Hadoop HDFS(本章节)
前面讲了很多HDFS的基本操作,并且其他软件也讲解过快照的相关概念:kvm-快照,ZooKeeper-快照。本小节我们来讲解HDFS的快照。
HDFS 快照是文件系统在某一时间点的只读镜像,用于快速恢复数据,不占用额外存储空间(仅记录差异)。
[root@node1 ~]# hdfs dfsadmin -allowSnapshot /test1
Allowing snaphot on /test1 succeeded
[root@node1 ~]#
[root@node1 ~]# hdfs dfs -createSnapshot /test1 snapshot_2025
Created snapshot /test1/.snapshot/snapshot_2025
[root@node1 ~]#
#列出有快照的目录
[root@node1 ~]# hdfs lsSnapshottableDir
drwxr-xr-x 0 root supergroup 0 2025-07-17 23:41 1 65536 /test1
#查看该目录下的快照
#实际和查看普通文件一样
[root@node1 ~]# hdfs dfs -ls /test1/.snapshot
Found 1 items
drwxr-xr-x - root supergroup 0 2025-07-17 23:41 /test1/.snapshot/snapshot_2025
[root@node1 ~]#
#有快照的目录原始文件
[root@node1 ~]# hdfs dfs -ls /test1/
Found 3 items
-rw-r--r-- 3 root supergroup 13368512 2025-07-18 00:09 /test1/apache-zookeeper-3.8.1-bin.tar.gz
-rw-r--r-- 3 root supergroup 1148 2025-07-11 01:11 /test1/core-site.xml
-rw-r--r-- 3 root supergroup 4969 2025-07-11 01:30 /test1/hadoop-env.sh
#删除文件
[root@node1 ~]# hdfs dfs -rm /test1/apache-zookeeper-3.8.1-bin.tar.gz
Deleted /test1/apache-zookeeper-3.8.1-bin.tar.gz
#从快照恢复数据到原始目录
[root@node1 ~]# hdfs dfs -cp /test1/.snapshot/snapshot_2025/apache-zookeeper-3.8.1-bin.tar.gz /test1/
[root@node1 ~]# hdfs dfs -ls /test1/
Found 3 items
-rw-r--r-- 3 root supergroup 13368512 2025-07-18 00:10 /test1/apache-zookeeper-3.8.1-bin.tar.gz
-rw-r--r-- 3 root supergroup 1148 2025-07-11 01:11 /test1/core-site.xml
-rw-r--r-- 3 root supergroup 4969 2025-07-11 01:30 /test1/hadoop-env.sh
[root@node1 ~]# hdfs dfs -rm -r /test1/.snapshot/snapshot_2025/
rm: Modification on a read-only snapshot is disallowed
[root@node1 ~]# hdfs dfs -deleteSnapshot /test1 snapshot_2025