Einführung
Der aktuelle Workshop-Plan wurde versehentlich abgesagt, und seine Kontaktdatei fehlt. Zwei native Snapshots sind noch vorhanden, doch der neuere enthält einen nicht genehmigten Entwurf. Das Team benötigt den genehmigten Plan zurück, ohne eine später hinzugefügte Paper-Folding-Veranstaltung oder den unveränderten Zugangshinweis zu verlieren.
Diese unabhängige Umgebung enthält alle nötigen Daten; sie verwendet keine Dateien aus dem vorigen Lab. Du solltest die bereits geübten Snapshot-Pfade und gewöhnlichen HDFS-Dateioperationen kennen. Du wählst eine Version nach fachlichen Anforderungen, stellst zwei benannte Objekte wieder her und prüfst den tatsächlichen gemeinsamen Lesezugriff. Verwende durchgehend Terminal. Der Autor schätzt die Dauer einschließlich Lesen und Beheben gewöhnlicher Fehler auf 45 Minuten.
Die genehmigte Version wählen und den Plan wiederherstellen
In diesem Schritt vergleichst du zwei Wiederherstellungspunkte und stellst nur den Plan wieder her, der zum veröffentlichten Veranstaltungsangebot passt. Öffne Terminal und beginne im lokalen Arbeitsbereich:
cd /home/labex/project
Der veröffentlichte Plan verlangt Printmaking in Raum A und Bookbinding in Raum B. Die Kontaktadresse für Besucher lautet visitors@example.test. Ein Entwurf wird nicht dadurch genehmigt, dass er neuer ist. Die später hinzugefügte aktuelle Datei late-session.csv ergänzt Raum C mit Paper Folding und muss erhalten bleiben. Behalte außerdem notes.txt, sämtliche bereitgestellten Snapshots, die Eigentümerschaft des gewöhnlichen Benutzers und die Freigabe mit reinem Lesezugriff. Baue nicht das ganze Verzeichnis neu auf.
Liste die aktuellen Dateien und die nativen Wiederherstellungspunkte auf:
hdfs dfs -ls /user/labex/snapshot-workshop/team
hdfs dfs -ls /user/labex/snapshot-workshop/team/.snapshot
Der aktuelle Plan existiert, aber contacts.csv fehlt. Die Snapshots heißen morning-approved und afternoon-draft. Vergleiche die darin tatsächlich enthaltenen Pläne; ein Name allein genügt nicht als Beleg:
hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/morning-approved/schedule.csv
hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/afternoon-draft/schedule.csv
Die Morgenversion enthält Printmaking und Bookbinding. Die Nachmittagsversion ersetzt die Veranstaltung in Raum A durch Draft Planning. Lies den aktuellen Plan:
hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
Er enthält A,CANCELLED. Der richtige Wiederherstellungspunkt ist deshalb die genehmigte Morgenversion, nicht der neueste Snapshot. Die fehlende Datei lässt sich getrennt wiederherstellen; es gibt keinen Grund, den gesamten Verzeichnisbaum zu ersetzen.
Die HDFS-Operation -cp kopiert zwischen HDFS-Pfaden. Die Option -p bewahrt Zeitstempel, Eigentümer, Gruppe und Berechtigungsmodus der Quelle; -f erlaubt das Ersetzen des angegebenen vorhandenen Ziels. Hier liegen beide Pfade im Kursordner, und du bist Eigentümer des Ziels:
hdfs dfs -cp -p -f /user/labex/snapshot-workshop/team/.snapshot/morning-approved/schedule.csv /user/labex/snapshot-workshop/team/schedule.csv
Lies den wiederhergestellten Plan mit der tatsächlichen Identität analyst:
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
Er zeigt nun Printmaking und Bookbinding. Prüfe, ob die spätere Ergänzung im aktuellen Ordner weiterhin verfügbar ist:
hdfs dfs -cat /user/labex/snapshot-workshop/team/late-session.csv
Sie zeigt weiterhin Paper Folding. Meldet eine Kopie eine fehlende Quelle, liste genau dieses Snapshot-Verzeichnis auf und korrigiere den Quellpfad; erstelle keinen leeren Ersatz. Falls du versehentlich den Entwurf kopierst, vergleiche beide historischen Versionen erneut und wiederhole nur die richtige Kopie der benannten Datei. Die Kopie mit -f kann allein diese falsche Version ersetzen, ohne die neue Veranstaltung zu berühren.
Den fehlenden Kontakt wiederherstellen und die Freigabe schreibgeschützt halten
In diesem Schritt stellst du den gelöschten Kontakt wieder her, liest den vollständigen Plan und prüfst die Zugriffsgrenzen. Fahre im selben Terminal fort.
Vergleiche beide historischen Kontaktdateien, bevor du eine auswählst:
hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/morning-approved/contacts.csv
hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/afternoon-draft/contacts.csv
Die Morgenversion enthält die erforderliche Adresse visitors@example.test; der Entwurf verwendet eine vorläufige Adresse. Kopiere die genehmigte historische Datei an ihren fehlenden aktuellen Pfad. Wenn das Ziel nicht existiert, ist keine Überschreiboption nötig:
hdfs dfs -cp -p /user/labex/snapshot-workshop/team/.snapshot/morning-approved/contacts.csv /user/labex/snapshot-workshop/team/contacts.csv
Falls dieses Ziel nach einer abgeschlossenen Kopie bereits existiert, lies es zuerst. Ist der Inhalt falsch, verwende dasselbe eng begrenzte Muster -cp -p -f aus Schritt 1 mit dem genehmigten Kontakt als Quelle und genau diesem einen Ziel. Lösche nicht den gesamten Ordner, um einen Fehler wegen einer vorhandenen Datei zu beheben.
Lies den wiederhergestellten Kontakt mit dem für die Freigabe berechtigten Benutzer analyst:
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/contacts.csv
Lies den unveränderten Hinweis und die spätere Veranstaltung mit derselben tatsächlichen Identität:
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/notes.txt
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/late-session.csv
Der Hinweis hält den Ruheraum offen, und die spätere Veranstaltung bleibt Paper Folding. Diese echten Lesezugriffe verwenden die erhaltenen Daten; ein bloßer lokaler Download würde diesen HDFS-Plan nicht reparieren.
Untersuche Eigentümer und Modi des Verzeichnisses und aller aktuellen Dateien. -ls -d zeigt den Verzeichniseintrag selbst; die Anführungszeichen um * lassen HDFS die Pfade auswählen, statt deiner lokalen Shell:
hdfs dfs -ls -d /user/labex/snapshot-workshop/team '/user/labex/snapshot-workshop/team/*'
Das bereitgestellte Verzeichnis verwendet 750, seine Dateien 640, jeweils mit Eigentümer labex und Gruppe bigdata. Diese Modi erlauben der Gruppe Lesen und Durchqueren ohne Schreibzugriff. Auch das Verzeichnis zählt: Eine dort schreibberechtigte Gruppe könnte Dateien löschen oder ersetzen, selbst wenn jede einzelne Datei nur lesbar wäre.
Mit der vorbereiteten HDFS-Operation -test -w fragst du ab, ob eine Identität Schreibzugriff hat. Sie versucht nicht zu schreiben. Der nächste Befehl soll ohne Ausgabe einen Rückgabecode ungleich null liefern, weil analyst das Team-Verzeichnis nicht verändern darf:
sudo -u analyst /usr/local/bin/hdfs dfs -test -w /user/labex/snapshot-workshop/team
Dieses absichtliche Ergebnis ungleich null bedeutet, dass die Grenzprüfung erfolgreich war; fahre fort. Eine unbeteiligte Identität darf die privaten freigegebenen Dateien nicht lesen. Die nächsten beiden Befehle sollen mit Permission denied scheitern:
sudo -u nobody /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
sudo -u nobody /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/contacts.csv
Falls eine unbeabsichtigte Berechtigungsänderung analyst ausgeschlossen hat, repariere nur das betroffene Kursobjekt: -chgrp bigdata setzt die Freigabegruppe, -chmod 750 gilt für das Team-Verzeichnis und -chmod 640 für eine benannte aktuelle Datei. Die folgenden vollständigen Beispielbefehle reparieren nur den Kontakt und das Team-Verzeichnis:
hdfs dfs -chgrp bigdata /user/labex/snapshot-workshop/team/contacts.csv
hdfs dfs -chmod 640 /user/labex/snapshot-workshop/team/contacts.csv
hdfs dfs -chmod 750 /user/labex/snapshot-workshop/team
Liste abschließend den vollständigen aktuellen Plan und die erhaltenen Wiederherstellungspunkte auf:
hdfs dfs -ls /user/labex/snapshot-workshop/team
hdfs dfs -ls /user/labex/snapshot-workshop/team/.snapshot
Alle vier aktuellen Dateien und beide ursprünglichen Snapshots sind noch vorhanden. Du hast die zwei betroffenen Objekte wiederhergestellt, ohne neuere Arbeit zu verwerfen. Eine andere gültige Vorgehensweise kann eine einzelne bekanntermaßen beschädigte aktuelle Datei entfernen und danach ihre historische Version kopieren, solange derselbe Inhalt und dieselben Freigabegrenzen erhalten bleiben. Die Aufgabe verlangt weder eine feste Befehlsschreibweise noch einen bestimmten Editor.
Zusammenfassung
Du hast die genehmigte historische Version anhand ihres fachlichen Inhalts gewählt, eine veränderte und eine fehlende Datei wiederhergestellt und spätere Arbeit sowie die ursprünglichen Snapshots erhalten. Tatsächliche Lesezugriffe durch analyst und die Ablehnung unbeteiligter Benutzer belegen das gemeinsame Ergebnis. Ein Snapshot im selben HDFS bleibt ein Wiederherstellungswerkzeug, kein unabhängiges Backup und keine Garantie für die Wiederherstellung nach Verlust des gesamten Speichers.



