Hadoop-Snapshot-Sicherung und -Wiederherstellung

Sichern Sie Dateien auf HDFS per Snapshot

Die API-Adresse finden Sie unter http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.5.0-cdh5.2.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.html

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

1. Snapshot-Erstellung zulassen

Führen Sie zunächst den Befehl unterhalb des Ordners aus, den Sie sichern möchten, damit der Ordner Snapshots erstellen kann

hdfs dfsadmin -allowSnapshot

例如:hdfs dfsadmin -allowSnapshot /Workspace/linlin

 

Center

Das Erscheinen dieses Befehls beweist, dass die Erstellung von Snapshots erfolgreich zugelassen wurde.

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

2. Erstellen Sie einen Schnappschuss

Beginnen Sie als Nächstes mit der Sicherung dieses Ordners.

hdfs dfs -createSnapshot [name]

例如 hdfs dfs -createSnapshot /Workspace/linlin bak1

Zentrum 1

Das Erscheinen dieses Befehls beweist, dass der Snapshot erfolgreich erstellt wurde.

An dieser Stelle können wir überlegen, ob wir einen Snapshot im Linlin-Unterverzeichnis erstellen können

Die Verzeichnisstruktur auf hdfs ist wie in der Abbildung dargestellt

Zentrum 2

Versuchen Sie dann, beim Snaptest einen Snapshot zu erstellen

hdfs dfs -createSnapshot /Workspace/linlin/snaptest bak2

Zentrum 3

Der Fehler wird gemeldet und ist sichtbar. Snapshots können nur in Verzeichnissen erstellt werden, die Sie zulassen;

Beim Erstellen des ersten Snapshots bak1 gab es keinen Snaptest-Ordner. Jetzt gibt es einen Snaptest-Ordner. Erstellen Sie einen weiteren Snapshot.

Wenn Sie es noch verwenden

hdfs dfs -createSnapshot /Workspace/linlin bak1

Zentrum 4

Es wird eine Fehlermeldung angezeigt, dass der Snapshot-Name bereits vorhanden ist.

执行 hdfs dfs -createSnapshot /Workspace/linlin bak2

Zentrum 5

Erfolgreich erstellt;

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

3. Schnappschüsse anzeigen

Alle Snapshottabellen anzeigen

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

Zentrum 6

Sie können sehen, dass sich unter diesem Snapshot drei Backups befinden, nämlich bak1, bak2 und linlin.

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

4. Vergleichen Sie Schnappschüsse

Machen Sie einen Vergleich zwischen Snapshots und sehen Sie sich die Unterschiede in den Sicherungsdateien zwischen den beiden Snapshots an

Einen Befehl ausführen

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

Supongo que te gusta

Origin blog.csdn.net/qq_16504067/article/details/132806528
Recomendado
Clasificación