스냅샷을 통해 HDFS에 파일 백업
API 주소는 http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.5.0-cdh5.2.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html을 참조하세요.
================================================= ========================================
1. 스냅샷 생성 허용
먼저, 백업하려는 폴더 아래에 있는 명령을 실행하여 해당 폴더에서 스냅샷을 생성할 수 있도록 하세요.
hdfs dfsadmin -allowSnapshot
例如:hdfs dfsadmin -allowSnapshot /Workspace/linlin
이 명령이 나타나면 스냅샷 생성이 성공적으로 허용되었음을 증명합니다.
================================================= ===============================================
2. 스냅샷 생성
다음으로 이 폴더의 백업을 시작하세요.
hdfs dfs -createSnapshot [name]
例如 hdfs dfs -createSnapshot /Workspace/linlin bak1
이 명령이 나타나면 스냅샷이 성공적으로 생성되었음을 증명합니다.
이 시점에서 우리는 linlin 하위 디렉터리에 스냅샷을 생성할 수 있는지 여부를 고려할 수 있습니다.
hdfs'의 디렉토리 구조는 그림과 같습니다.
그런 다음 snaptest에서 스냅샷을 생성해 보세요.
hdfs dfs -createSnapshot /Workspace/linlin/snaptest bak2
오류가 보고되고 표시됩니다. 스냅샷은 허용된 디렉터리에서만 생성될 수 있습니다.
처음 스냅샷을 찍을 땐 snaptest 폴더가 없었는데 bak1 이제 snaptest 폴더가 생겼으니 또 다른 스냅샷을 생성해 보세요.
아직도 사용하고 계시다면
hdfs dfs -createSnapshot /Workspace/linlin bak1
스냅샷 이름이 이미 존재한다는 오류 메시지가 있습니다.
执行 hdfs dfs -createSnapshot /Workspace/linlin bak2
성공적으로 생성되었습니다.
================================================= ================================================= ==========
3. 스냅샷 보기
모든 스냅샷 테이블 보기
hdfs lsSnapshottableDir
查看到曾经允许创建快照的所有目录 查看当前快照下的文件 hadoop sanpshot 创建快照时候,默认的文件夹是.snapshot 查看时候必须加上.snapshot才能看到里面备份的东西; .snapshot是后来hadoop才有的产物,所以之前若是有文件夹命名为snapshot关键字就不能创建快照了;
执行命令 hdfs dfs -ls /Workspace/linlin/.snapshot/
이 스냅샷 아래에는 bak1, bak2 및 linlin이라는 세 가지 백업이 있음을 알 수 있습니다.
================================================= ================================================= =======
4. 스냅샷 비교
스냅샷을 비교하고 두 스냅샷 간의 백업 파일 차이를 확인하세요.
주문 실행
hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
例如: 执行命令 hdfs snapshotDiff /Workspace/linlin bak1 bak2
结果 Results:
+ The file/directory has been created. - The file/directory has been deleted. M The file/directory has been modified. R The file/directory has been renamed.
这里出现M 代表我对linlin文件夹进行了修改,+代表新增了一个文件夹 snaptest ============================================================================================================================ 5、恢复快照
恢复快照: hdfs dfs -cp <path> <path> 例如: hdfs dfs -cp /Workspace/linlin/.snapshot/bak2/snaptest /Workspace
查看hdfs目录:
已经成功恢复到 Workspace
================================================================================================================================== 题外话: 我们可以尝试着删除建立过快照的文件夹:是无法删除的,会提示
存在快照无法删,证明若是在文件夹下面建立快照,文件夹就无法删除或者移动