hadoop 스냅샷 백업 및 복구

스냅샷을 통해 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

센터 1

이 명령이 나타나면 스냅샷이 성공적으로 생성되었음을 증명합니다.

이 시점에서 우리는 linlin 하위 디렉터리에 스냅샷을 생성할 수 있는지 여부를 고려할 수 있습니다.

hdfs'의 디렉토리 구조는 그림과 같습니다.

센터 2

그런 다음 snaptest에서 스냅샷을 생성해 보세요.

hdfs dfs -createSnapshot /Workspace/linlin/snaptest bak2

센터 3

오류가 보고되고 표시됩니다. 스냅샷은 허용된 디렉터리에서만 생성될 수 있습니다.

처음 스냅샷을 찍을 땐 snaptest 폴더가 없었는데 bak1 이제 snaptest 폴더가 생겼으니 또 다른 스냅샷을 생성해 보세요.

아직도 사용하고 계시다면

hdfs dfs -createSnapshot /Workspace/linlin bak1

센터 4

스냅샷 이름이 이미 존재한다는 오류 메시지가 있습니다.

执行 hdfs dfs -createSnapshot /Workspace/linlin bak2

센터 5

성공적으로 생성되었습니다.

================================================= ================================================= ==========

3. 스냅샷 보기

모든 스냅샷 테이블 보기

hdfs lsSnapshottableDir
查看到曾经允许创建快照的所有目录 查看当前快照下的文件 hadoop sanpshot 创建快照时候,默认的文件夹是.snapshot 查看时候必须加上.snapshot才能看到里面备份的东西; .snapshot是后来hadoop才有的产物,所以之前若是有文件夹命名为snapshot关键字就不能创建快照了;
执行命令 hdfs dfs -ls /Workspace/linlin/.snapshot/

센터 6

이 스냅샷 아래에는 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
================================================================================================================================== 题外话: 我们可以尝试着删除建立过快照的文件夹:是无法删除的,会提示
存在快照无法删,证明若是在文件夹下面建立快照,文件夹就无法删除或者移动

추천

출처blog.csdn.net/qq_16504067/article/details/132806528