Snapshots用于数据备份、保护数据不被破坏
基本命令
允许这个文件路径可以创建snapshots: hdfs dfsadmin -allowSnapshot /user/hadoop-twq/cmd
创建snapshots hdfs dfs -createSnapshot /user/hadoop-twq/cmd cmd-20180326-snapshot
查看snapshots hdfs dfs -ls /user/hadoop-twq/cmd/.snapshot/cmd-20180326-snapshot
不小心往文件中写入了错误数据文件: hdfs dfs -touchz /user/hadoop-twq/cmd/test1.txt
hdfs dfs -touchz /user/hadoop-twq/cmd/test2.txt
创建snapshots: hdfs dfs -createSnapshot /user/hadoop-twq/cmd cmd-20180327-snapshot
两个snapshot对比: hdfs snapshotDiff /user/hadoop-twq/cmd cmd-20180326-snapshot cmd-20180327-snapshot
恢复文件: hdfs dfs -cp -ptopax /user/hadoop-twq/cmd/.snapshot/cmd-20180326-snapshot /user/hadoop-twq/
删除snapshots hdfs dfs -deleteSnapshot /user/hadoop-twq/cmd cmd-20180327-snapshot
重命名snapshots hdfs dfs -renameSnapshot /user/hadoop-twq/cmd cmd-20180327-snapshot new_snapshot
查看所有的snapshots hdfs lsSnapshottableDir
不允许这个path创建snapshots hdfs dfsadmin -disallowSnapshot <path>
基本使用(流程):
master的hadoop-twq用户下cd ~
创建data目录: hadoop fs -mkdir /user/hadoop-twq/data
hadoop fs -ls /user/hadoop-twq
hadoop fs -touchz /user/hadoop-twq/data/file1.txt
hadoop fs -touchz /user/hadoop-twq/data/file2.txt
hadoop fs -put word.txt test.txt /user/hadoop-twq/data
假设上面是昨天写进去的,想要把这些数据进行备份,使用快照的方式进行备份,想要对/user/hadoop-twq/data目录进行备份,需要允许对其创建快照。允许创建快照: hdfs dfsadmin -allowSnapshot /user/hadoop-twq/data
对/user/hadoop-twq/data创建快照,并对快照命名: hadoop fs -createSnapshot /user/hadoop-twq/data data-20180327-snapshots
查看快照备份的文件: hadoop fs -ls /user/hadoop-twq/data/.snapshot/data-20180327-snapshots
通过WebUI可以查看备份情况
今天0328又往data里面写了数据: hadoop fs -touchz /user/hadoop-twq/data/file3.txt
hadoop fs -touchz /user/hadoop-twq/data/file4.txt
hadoop fs -put test2.txt /user/hadoop-twq/data
创建今天的快照(备份) hadoop fs -createSnapshot /user/hadoop-twq/data data-20180328-snapshot
恢复27号的数据: hadoop fs -cp -ptop /user/hadoop-twq/data/.snapshot/data-20180327-snapshots /user/hadoop-twq
查看恢复的数据: hadoop fs -ls /user/hadoop-twq
hadoop fs -ls /user/hadoop-twq/data-20180327-snapshots
查看当前数据: hadoop fs -ls /user/hadoop-twq/data
两个快照之间进行对比: hdfs snapshotDiff /user/hadoop-twq/data data-20180327-snapshots data-20180328-snapshot
重命名快照: hadoop fs -renameSnapshot /user/hadoop-twq/data data-20180327-snapshots data-20180327-snapshot
删除27号的快照: hadoop fs -deleteSnapshot /user/hadoop-twq/data data-20180327-snapshot