hadoop snapshots 快照实验

本文固定链接:https://www.askmac.cn/archives/hadoop-snapshots-try.html

1 实验环境

 

hadoop 2.7   jdk 1.8

 

在之前的单namenode非HA的hadoop环境中进行,其中3个datanode

 

各个节点分布如下:

 

10.0.0.22            dbdao         # NameNode
10.0.0.23            dbdao2        # ResourceManager
10.0.0.24            dbdao3        # web app proxy and MR Jobhistory server
10.0.0.25            dbdao4        # DataNode
10.0.0.26            dbdao5        # DataNode
10.0.0.27            dbdao6        # DataNode

 

 

2 创建快照

2.1 在hdfs中创建snapshottable目录

 

hdfs dfs -mkdir /hadoop-snapshot

 

然后检查目录是否成功创建

hdfs dfs -ls /

 

最后允许快照

hdfs dfsadmin -allowSnapshot /hadoop-snapshot


2.2 生成测试文件

 

hdfs dfs -mkdir -p /usr/dbdao/test

hdfs dfs -put /usr/local/hadoop/conf/*  /usr/dbdao/test

hdfs dfs -ls /usr/dbdao/test

 

确保有测试文件已经传入hdfs文件系统

 

2.3 创建快照

得到有权限创建快照的目录:

hdfs lsSnapshottableDir

生成快照:

hdfs dfs -createSnapshot  /hadoop-snapshot

可以看到按照默认的命名方式在.snapshot 子目录生成了一个快照

 

3快照对比

 

3.1对测试文件进行操作

删除文件

hdfs dfs -rm /usr/dbdao/test/yarn-env.cmd

 

增加新文件

 

echo 0 > test.ls

dbdao@dbdao6:~$ hdfs dfs -put test.ls  /usr/dbdao/test

 

移动文件和目录

hdfs dfs -mv /usr/dbdao/test/core-site.xml /usr/dbdao/test/ /hadoop-snapshot

 

 

–将一个文件和整个目录移动到/hadoop-snapshot中

 

多次移动目录

 

hdfs dfs -mv /hadoop-snapshot/test /

hdfs dfs -mv /test  /usr/dbdao

 

3.2 再次生成新快照

hdfs dfs -createSnapshot  /hadoop-snapshot

 

 

3.3 生成快照对比报告

hdfs dfs -ls /hadoop-snapshot/.snapshot
hdfs snapshotDiff  /hadoop-snapshot  s20151101-143101.565  s20151101-144905.893

可以发现,对于快照目录 /hadoop-snapshot来说,是新增了一个文件core-sit.xml

也就是说快照只记录快照目录的修改操作。其他的无关操作不会记录 。

 

可以发现快照目录中存有记录,是按时间反序排列的:

 

4.移除快照,删除快照目录

 

删除所有快照

 

可以单独一个个删除快照:

hdfs dfs -deleteSnapshot  /hadoop-snapshot/  s20151101-143101.565

hdfs dfs -deleteSnapshot  /hadoop-snapshot/  s20151101-144905.893

 

取消快照:

hdfs dfsadmin -disallowSnapshot  /hadoop-snapshot

 

—–注意在取消快照之前.snapshot目录是只读的,不能被rm,rmdir操作。

 

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号