Introduction
Le programme actuel de l’atelier a été annulé accidentellement et son fichier de contact manque. Deux snapshots natifs restent disponibles, mais le plus récent contient un brouillon non approuvé. L’équipe doit retrouver le programme approuvé tout en conservant une activité Paper Folding ajoutée ensuite et la note d’accès inchangée.
Cet environnement indépendant contient toutes les données nécessaires ; il n’utilise aucun fichier du laboratoire précédent. Vous devez connaître les chemins de snapshots et les opérations HDFS ordinaires déjà pratiqués. Vous choisirez une version conforme aux besoins métier, restaurerez deux objets nommés et testerez la lecture partagée réelle. Utilisez Terminal du début à la fin. L’auteur estime la durée à 45 minutes, lecture et correction d’erreurs courantes comprises.
Choisir la version approuvée et restaurer le programme
Dans cette étape, vous comparerez deux points de récupération et restaurerez uniquement le programme correspondant aux activités publiées. Ouvrez Terminal et commencez dans l’espace de travail local :
cd /home/labex/project
Le programme publié exige Printmaking dans la salle A et Bookbinding dans la salle B. Le contact des visiteurs est visitors@example.test. Un brouillon n’est pas approuvé simplement parce qu’il est plus récent. Le fichier actuel ajouté ensuite, late-session.csv, apporte la salle C et Paper Folding et doit rester présent. Conservez aussi notes.txt, tous les snapshots fournis, la propriété de l’utilisateur ordinaire et le partage en lecture seule. Ne reconstruisez pas tout le répertoire.
Affichez les fichiers actuels et les points de récupération natifs :
hdfs dfs -ls /user/labex/snapshot-workshop/team
hdfs dfs -ls /user/labex/snapshot-workshop/team/.snapshot
Le programme actuel existe, mais contacts.csv manque. Les snapshots s’appellent morning-approved et afternoon-draft. Comparez les programmes qu’ils contiennent réellement ; un nom seul ne suffit pas comme preuve :
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
La version du matin contient Printmaking et Bookbinding. Celle de l’après-midi remplace l’activité de la salle A par Draft Planning. Lisez le programme actuel :
hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
Il contient A,CANCELLED. Le bon point de récupération est donc la version approuvée du matin, et non le snapshot le plus récent. Le fichier manquant peut être restauré séparément ; il n’y a aucune raison de remplacer tout l’arbre.
L’opération HDFS -cp copie entre des chemins HDFS. L’option -p préserve les horodatages, le propriétaire, le groupe et le mode de permissions de la source ; -f autorise le remplacement de la destination existante indiquée. Ici, les deux chemins restent dans le dossier du cours et vous êtes propriétaire de la destination :
hdfs dfs -cp -p -f /user/labex/snapshot-workshop/team/.snapshot/morning-approved/schedule.csv /user/labex/snapshot-workshop/team/schedule.csv
Lisez le programme restauré avec l’identité réelle analyst :
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/schedule.csv
Il affiche maintenant Printmaking et Bookbinding. Vérifiez que l’ajout ultérieur du dossier actuel reste disponible :
hdfs dfs -cat /user/labex/snapshot-workshop/team/late-session.csv
Il affiche toujours Paper Folding. Si une copie signale une source manquante, affichez ce répertoire précis du snapshot et corrigez le chemin source ; ne créez pas de remplacement vide. Si vous copiez accidentellement le brouillon, comparez de nouveau les deux versions historiques et répétez seulement la copie correcte du fichier nommé. La copie avec -f peut remplacer cette seule mauvaise version sans toucher à la nouvelle activité.
Restaurer le contact manquant et conserver le partage en lecture seule
Dans cette étape, vous restaurerez le contact supprimé, lirez le programme complet et testerez les limites d’accès. Continuez dans le même Terminal.
Comparez les deux fichiers de contact historiques avant d’en choisir un :
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
La version du matin contient l’adresse requise, visitors@example.test ; le brouillon utilise une adresse temporaire. Copiez le fichier historique approuvé vers son chemin actuel manquant. Aucune option d’écrasement n’est nécessaire lorsque la destination n’existe pas :
hdfs dfs -cp -p /user/labex/snapshot-workshop/team/.snapshot/morning-approved/contacts.csv /user/labex/snapshot-workshop/team/contacts.csv
Si cette destination existe déjà après une copie terminée, lisez-la d’abord. Si son contenu est incorrect, utilisez le même modèle limité -cp -p -f de l’étape 1, avec le contact approuvé comme source et cette seule destination. Ne supprimez pas tout le dossier pour résoudre une erreur de fichier existant.
Lisez le contact restauré avec l’utilisateur analyst autorisé au partage :
sudo -u analyst /usr/local/bin/hdfs dfs -cat /user/labex/snapshot-workshop/team/contacts.csv
Lisez la note inchangée et l’activité ultérieure avec la même identité réelle :
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
La note maintient la salle calme ouverte et l’activité ultérieure reste Paper Folding. Ces lectures réelles utilisent les données conservées ; un simple téléchargement local ne réparerait pas ce programme HDFS.
Examinez le propriétaire et les modes du répertoire ainsi que de chaque fichier actuel. -ls -d affiche l’entrée du répertoire lui-même ; les guillemets autour de * laissent HDFS sélectionner les chemins, au lieu de votre shell local :
hdfs dfs -ls -d /user/labex/snapshot-workshop/team '/user/labex/snapshot-workshop/team/*'
Le répertoire fourni utilise 750 et ses fichiers 640, avec le propriétaire labex et le groupe bigdata. Ces modes permettent au groupe de lire et de traverser, sans écrire. Le répertoire compte aussi : un groupe pouvant y écrire pourrait supprimer ou remplacer des fichiers, même si chacun était en lecture seule.
Utilisez l’opération HDFS préparée -test -w pour demander si une identité dispose d’un accès en écriture. Elle ne tente pas d’écrire. La commande suivante doit renvoyer un code différent de zéro sans sortie, car analyst ne doit pas pouvoir modifier le répertoire de l’équipe :
sudo -u analyst /usr/local/bin/hdfs dfs -test -w /user/labex/snapshot-workshop/team
Ce résultat volontairement différent de zéro signifie que le test de la limite a réussi ; continuez. Une identité extérieure ne doit pas pouvoir lire les fichiers partagés privés. Les deux commandes suivantes doivent échouer avec Permission denied :
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
Si un changement involontaire de permissions a bloqué analyst, restaurez uniquement l’objet concerné du cours : -chgrp bigdata attribue le groupe de partage, -chmod 750 s’applique au répertoire de l’équipe et -chmod 640 à un fichier actuel nommé. Par exemple, les commandes complètes suivantes ne réparent que le contact et le répertoire de l’équipe :
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
Pour finir, affichez le programme actuel complet et les points de récupération conservés :
hdfs dfs -ls /user/labex/snapshot-workshop/team
hdfs dfs -ls /user/labex/snapshot-workshop/team/.snapshot
Les quatre fichiers actuels et les deux snapshots d’origine restent présents. Vous avez restauré les deux objets concernés sans perdre le travail plus récent. Une autre méthode valide peut supprimer un seul fichier actuel dont l’endommagement est connu, puis recopier sa version historique, à condition de préserver le même contenu et les mêmes limites de partage. La tâche n’impose ni une écriture précise des commandes ni un éditeur particulier.
Résumé
Vous avez choisi la version historique approuvée d’après son contenu métier, restauré un fichier modifié et un fichier manquant, et conservé le travail ultérieur ainsi que les snapshots d’origine. Les lectures réelles d’analyst et les refus opposés aux utilisateurs extérieurs ont démontré le résultat partagé. Un snapshot dans le même HDFS reste un outil de récupération, pas une sauvegarde indépendante ni une garantie de reprise après la perte de tout le stockage.



