Introduction
Un atelier communautaire conserve son programme par salle, l’adresse de contact des visiteurs et une note d’accès dans un dossier HDFS partagé. Avant de modifier le programme, il vous faut un point de récupération qui montrera encore les fichiers approuvés après les changements du dossier actuel.
Vous lirez d’abord les données normales, créerez un snapshot natif en tant que propriétaire ordinaire, puis effectuerez deux changements contrôlés. Vous devez déjà connaître les chemins HDFS, l’envoi de fichiers, les répertoires et les permissions de base du propriétaire et du groupe. Ce laboratoire présente les snapshots et leurs chemins historiques. Utilisez Terminal du début à la fin ; toutes les données sont indépendantes des autres laboratoires. L’auteur estime la durée à 40 minutes, lecture et correction d’erreurs courantes comprises.
Conserver les fichiers approuvés avant modification
Dans cette étape, vous lirez le programme opérationnel et créerez un point de récupération nommé. Commencez dans Terminal. cd change le répertoire de travail local de ce shell ; les chemins commençant par /user/labex/ dans les commandes HDFS appartiennent à HDFS et non à votre disque local.
cd /home/labex/project
Lisez le programme actuel :
hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
Les champs séparés par des virgules indiquent une salle et son activité :
room,session
A,Printmaking
B,Bookbinding
Le dossier de l’équipe contient aussi contacts.csv et notes.txt. Affichez son contenu :
hdfs dfs -ls /user/labex/snapshot-workshop/team
Ces fichiers partagés normaux appartiennent à labex, avec le groupe bigdata. L’utilisateur préparé analyst appartient à ce groupe et peut lire sans écrire. Vous êtes le propriétaire ordinaire, pas l’identité de service du NameNode, hdfs. L’environnement pédagogique utilise une authentification simple ; il ne démontre pas la sécurité Kerberos.
Un snapshot est une vue historique en lecture seule d’un répertoire à un instant nommé. Un administrateur a activé la capacité de snapshot uniquement sur ce dossier du cours. Vous créez vous-même le véritable point de récupération. -createSnapshot prend le répertoire actuel, suivi du nom du snapshot :
hdfs dfs -createSnapshot /user/labex/snapshot-workshop/team morning-approved
La réponse indique un chemin natif se terminant par .snapshot/morning-approved. Le composant spécial .snapshot sélectionne l’historique ; ce n’est pas un répertoire de sauvegarde ordinaire créé avec -mkdir. Lisez le programme historique :
hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/morning-approved/schedule.csv
Il contient les deux mêmes activités approuvées. Affichez les trois fichiers historiques :
hdfs dfs -ls /user/labex/snapshot-workshop/team/.snapshot/morning-approved
Le snapshot comprend également le contact et la note d’accès d’origine. Si une commande indique No such file or directory, comparez l’orthographe du chemin avec cette liste, puis répétez uniquement la lecture qui a échoué. Si -createSnapshot indique que le nom existe déjà, examinez ce snapshot au lieu de le supprimer ou de le recréer. Ne relancez pas la préparation de l’environnement : elle refuse d’écraser le travail existant.
Vous disposez maintenant d’un véritable point de récupération avant toute modification. Une copie téléchargée localement ou un dossier ordinaire portant le même nom ne créerait pas cet historique natif.
Comparer l’historique au travail ultérieur
Dans cette étape, vous ajouterez du travail nouveau valide, provoquerez une erreur limitée et constaterez que le snapshot reste inchangé. Continuez dans le même Terminal.
Le fichier de l’activité ultérieure de l’atelier est fourni localement. Lisez-le d’abord :
cat /home/labex/project/incoming/late-session.csv
Il contient la salle C et Paper Folding. Envoyez-le dans le dossier actuel de l’équipe. Il fait partie du programme actuel et doit être conservé lors de toute récupération ultérieure :
hdfs dfs -put /home/labex/project/incoming/late-session.csv /user/labex/snapshot-workshop/team/late-session.csv
Conservez le groupe de partage prévu avec -chgrp. Le mode de fichier 640 accorde lecture et écriture au propriétaire, lecture au groupe et aucun accès au fichier aux autres utilisateurs :
hdfs dfs -chgrp bigdata /user/labex/snapshot-workshop/team/late-session.csv
hdfs dfs -chmod 640 /user/labex/snapshot-workshop/team/late-session.csv
Examinez ensuite un remplacement volontairement incorrect :
cat /home/labex/project/incoming/schedule-draft.csv
Il contient A,CANCELLED. L’envoi suivant écrase délibérément uniquement le fichier actuel du programme indiqué. L’option -f autorise le remplacement de cette destination ; vous l’utilisez ici uniquement parce qu’il s’agit d’une modification contrôlée. Elle n’affecte pas le snapshot.
hdfs dfs -put -f /home/labex/project/incoming/schedule-draft.csv /user/labex/snapshot-workshop/team/schedule.csv
La deuxième erreur contrôlée supprime uniquement le fichier de contact actuel. Confirmez d’abord le chemin exact :
hdfs dfs -ls /user/labex/snapshot-workshop/team/contacts.csv
hdfs dfs -rm /user/labex/snapshot-workshop/team/contacts.csv
N’utilisez ni caractère générique, ni suppression récursive, ni racine de l’équipe. Lisez le programme modifié, puis sa version historique :
hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/morning-approved/schedule.csv
Le résultat actuel indique une annulation ; l’historique contient toujours Printmaking et Bookbinding. Lisez le contact historique avec la véritable identité autorisée à lire les données partagées. sudo -u analyst exécute seulement ce client sous cette identité ordinaire de test ; le chemin absolu du client sélectionne l’outil HDFS préparé :
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/.snapshot/morning-approved/contacts.csv
L’adresse reste visitors@example.test, même si le fichier de contact actuel manque. Consultez la liste actuelle :
hdfs dfs -ls /user/labex/snapshot-workshop/team
Elle contient le programme modifié, la note inchangée et la nouvelle activité. Si l’envoi précédent du nouveau fichier signalait une destination existante, lisez le fichier déjà présent au lieu de le supprimer et d’élargir l’envoi. Si une nouvelle suppression signale que le contact manque, la suppression contrôlée a déjà eu lieu ; examinez la liste et continuez.
Conservez cet état final tel quel. Le laboratoire suivant fournit son propre scénario endommagé indépendant et enseigne la récupération. Les snapshots partagent le stockage de HDFS : leurs blocs ne sont pas des copies de sauvegarde indépendantes et ne protègent donc pas contre la perte de tout le système de stockage.
Résumé
Vous avez créé un snapshot HDFS natif avant de modifier les données, puis distingué ses fichiers historiques protégés du dossier actuel modifié. L’activité ajoutée ensuite n’existe que dans le programme actuel : remplacer tout le dossier par l’historique ferait donc perdre du travail valide. Vous avez aussi lu l’historique avec la véritable identité de lecture partagée analyst.



