Cet article décrit les pratiques d’excellence recommandées pour la sauvegarde des environnements non PowerScale Hadoop sur un cluster Dell PowerScale. Avec sa protection des données effacement-codage robuste qui fournit une efficacité de stockage supérieure à 80 %, Dell PowerScale est une cible de sauvegarde idéale pour les données situées sur un cluster Hadoop. DistCp (copie distribuée) est un outil standard fourni avec toutes les versions et toutes les distributions Hadoop. DistCp peut copier des répertoires Hadoop entiers. DistCp s’exécute en tant que tâche MapReduce pour effectuer des copies de fichiers en parallèle, en utilisant vos systèmes de manière exhaustive si nécessaire. Il existe également une option de limitation de la bande passante afin de contrôler l’impact sur les autres tâches.
ENVIRONNEMENT
Cet article repose sur l’environnement de test suivant :
Étant donné que DistCp est un outil Hadoop standard, l’approche décrite dans ce document s’applique à la plupart, voire à toutes les autres versions et distributions Hadoop.
Lors de la lecture de ce document, supposons que les données à sauvegarder se trouvent sur le cluster PHD Hadoop HDFS dans le répertoire /mydata. Les exemples sauvegardent ces données sur le cluster PowerScale dans le répertoire /ifs/hadoop/backup/mydata.
Figure 1 : Sauvegarde d’un cluster Hadoop sur Isilon
La commande de sauvegarde la plus simple est indiquée ci-dessous :
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata hdfs://all-nc-s-hdfs/backup/mydata
Vous pouvez exécuter la commande ci-dessus sur n’importe quel hôte sur lequel est installé le client Hadoop (hadoop). L’utilisateur qui exécute la commande doit disposer des autorisations nécessaires de lecture des fichiers sources et d’écriture des fichiers cibles.
Vous devez spécifier les options -skipcrccheck et -update pour éviter la vérification CRC des fichiers cibles placés sur le cluster PowerScale. PowerScale ne stocke pas le CRC Hadoop et son calcul s’avérerait trop coûteux. Par conséquent, ces options sont requises pour éviter les erreurs liées à la vérification CRC.
Le paramètre suivant « /mydata » est le chemin source sur le cluster Hadoop source. Cela peut également être « / » pour sauvegarder l’intégralité de votre espace de nommage HDFS. Puisque le chemin n’est pas complet, il utilise le NameNode HDFS spécifié dans le paramètre fs.defaultFS de core-site.xml.
Le paramètre final « hdfs://all-nc-s-hdfs/backup/mydata » est le chemin cible sur votre cluster PowerScale. La partie hôte « all-nc-s-hdfs » peut être un nom DNS relatif ou complet tel que all-nc-s-hdfs.exemple.com. Il doit s’agir du nom DNS de la zone SmartConnect pour votre cluster PowerScale. La partie de répertoire « /backup/mydata » est relative au chemin racine HDFS défini dans votre zone d’accès au cluster PowerScale. Si votre chemin racine HDFS est /ifs/hadoop, cette valeur fait alors référence à /ifs/hadoop/backup/mydata.
Les fichiers dont la taille est identique sur les répertoires source et cible sont supposés inchangés et ne sont donc pas copiés. Les horodatages de fichier, notamment, ne sont pas utilisés pour déterminer les fichiers modifiés. Pour plus d’informations sur DistCp, voir le Guide Hadoop DistCp version 2.
AUTORISATIONS DE COPIE
Par défaut, le propriétaire, le groupe et les autorisations des fichiers cibles sont réinitialisés à la valeur par défaut pour les nouveaux fichiers créés par l’utilisateur qui lance DistCp. Tout propriétaire, tout groupe et toute autorisation définis pour le fichier source sont perdus. Pour conserver ces informations des fichiers sources, utilisez l’option -p. Étant donné que l’option -p doit effectuer la commande chown/chgrp, l’utilisateur qui lance DistCp doit être un superutilisateur sur le système cible. C’est précisément le rôle de l’utilisateur root du cluster PowerScale. Par exemple : [root@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update -pugp /mydata hdfs://all-nc-s-hdfs/backup/mydata
UTILISATION DE SNAPSHOTS POUR VOTRE SOURCE DE SAUVEGARDE
La sauvegarde de jeux de données volumineux peut prendre beaucoup de temps. Les fichiers qui existent au début du processus DistCp lors du balayage de la structure de répertoires peuvent ne plus exister lors de la copie de ce fichier. Ce changement de fichiers génère des erreurs. En outre, une application peut nécessiter une sauvegarde cohérente unique à un point dans le temps pour qu’elle soit utilisable. Pour résoudre ces problèmes, nous vous recommandons de créer un snapshot HDFS de votre source afin de vous assurer que le jeu de données ne change pas pendant le processus de sauvegarde. Cela n’est pas lié à la fonctionnalité SnapshotIQ de votre cluster PowerScale cible.
Pour utiliser des snapshots HDFS, vous devez d’abord autoriser les snapshots pour un répertoire particulier :[gpadmin@phddas2-0 ~]$ hdfs dfsadmin -allowSnapshot /mydata
Allowing snapshot on /mydata succeeded
Immédiatement avant une sauvegarde avec DistCp, créez le snapshot HDFS :
[gpadmin@phddas2-0 ~]$ hdfs dfs -createSnapshot /mydata backupsnap Created snapshot /mydata/.snapshot/backupsnap
Le nom de ce snapshot est backupsnap. Vous pouvez y accéder via le chemin HDFS /mydata/.snapshot/backupsnap. Les modifications apportées à vos fichiers HDFS après ce snapshot ne sont pas répercutées dans la sauvegarde suivante. Vous pouvez sauvegarder le snapshot sur PowerScale à l’aide de la commande suivante :
[gpadmin@phddas2-0 ~]$ hadoop distcp -skipcrccheck -update /mydata/.snapshot/backupsnap hdfs://all-nc-s-hdfs/backup/mydata
Lorsque l’exécution de la commande de sauvegarde est terminée, vous pouvez supprimer le snapshot. Cette opération libère de l’espace utilisé pour conserver les anciennes versions de fichiers modifiés depuis le snapshot :
[gpadmin@phddas2-0 ~]$ hdfs dfs -deleteSnapshot /mydata backupsnap
UTILISATION DES SNAPSHOTS PowerScale POUR VOTRE CIBLE DE SAUVEGARDE
Indépendamment de l’utilisation de snapshots pour votre source de sauvegarde, vous pouvez conserver plusieurs snapshots de votre répertoire cible de sauvegarde pour restaurer des versions plus anciennes des fichiers.
Pour créer des snapshots sur PowerScale, vous devez disposer d’une licence SnapshotIQ. Vous pouvez créer des snapshots à l’aide de l’interface d’administration Web ou de la CLI. Pour créer manuellement un seul snapshot PowerScale à l’aide de la CLI, connectez-vous en SSH à n’importe quel nœud PowerScale et exécutez les opérations suivantes :all-nc-s-1# isi snapshot snapshots create /ifs/hadoop/backup/mydata --name backup-2014-07-01 --expires 1D --verbose
Created snapshot backup-2014-07-01 with ID 6
Vous pouvez ajouter cette commande au processus de sauvegarde décrit dans la section Planification des sauvegardes ci-dessous.
Pour plus d’informations sur les snapshots PowerScale OneFS, consultez le Guide d’administration de la CLI PowerScale OneFS pour votre version de OneFS : Hubs d’informations PowerScale OneFS
RÉPLICATION SYNCIQ POUR PLUSIEURS CLUSTERS PowerScale
Une fois la sauvegarde DistCp sur le cluster PowerScale terminée, vous pouvez utiliser OneFS SyncIQ pour répliquer des snapshots sur un WAN vers d’autres clusters PowerScale. Les snapshots répliqués peuvent fournir un composant polyvalent et efficace de votre stratégie de reprise après sinistre.
Figure 2 : Réplication SyncIQ pour plusieurs clusters Isilon
TRAITEMENT DES FICHIERS SUPPRIMÉS
Par défaut, les fichiers supprimés du cluster Hadoop source ne sont pas supprimés du cluster Hadoop cible. Si vous avez besoin de mettre en place ce comportement, ajoutez l’argument -delete à la commande DistCp. Lorsque vous utilisez cette commande, nous vous recommandons d’utiliser des snapshots sur la cible de sauvegarde pour permettre la récupération des fichiers supprimés.
PLANIFICATION DES SAUVEGARDES
Vous pouvez automatiser et planifier les étapes de sauvegarde d’un cluster Hadoop à l’aide de différentes méthodes. Apache Oozie, souvent utilisé pour automatiser les tâches Hadoop, prend directement en charge DistCp. Vous pouvez également utiliser CRON pour exécuter un script Shell. Pour automatiser l’exécution des commandes dans une session SSH, activez le protocole SSH sans mot de passe. Le SSH sans mot de passe permet à un utilisateur CRON de se connecter à votre client Hadoop et à votre cluster PowerScale (si vous utilisez SnapshotIQ).
Les fichiers cibles de sauvegarde sur PowerScale sont accessibles à partir des applications Hadoop de la même manière que les fichiers sources, en raison de la prise en charge de HDFS par PowerScale. Vous pouvez utiliser vos données de sauvegarde directement, sans avoir à les restaurer dans votre environnement Hadoop source d’origine. Cette fonctionnalité permet d’économiser du temps d’analyse. Par exemple, si vous exécutez une commande MapReduce comme celle-ci :hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep /mydata/mydataset1 output1 ABC
Vous pouvez exécuter la tâche MapReduce selon le jeu de données de sauvegarde sur PowerScale à l’aide de la commande suivante :hadoop jar /usr/lib/gphd/hadoop-mapreduce/hadoop-mapreduce-examples.jar grep hdfs://all-nc-s-hdfs/backup/ /mydata/mydataset1 output1 ABC
Si vous souhaitez spécifier un chemin Hadoop complet au lieu d’utiliser le paramètre fs.defaultFS, contactez votre fournisseur d’applications pour obtenir la procédure détaillée. En outre, un cluster PowerScale conçu pour la sauvegarde et l’archivage plutôt que pour des performances élevées est susceptible de ne pas fournir les mêmes performances que votre environnement Hadoop principal. Nous vous recommandons de procéder à des tests ou de consulter Dell PowerScale pour un dimensionnement approprié.