L'essentiel de Hadoop

Administrer le cluster HDFS

Testez gratuitement nos 1254 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Gérez les contrôles d'intégrité et de réplication, équilibrez votre cluster et tirez parti de la fédération, des snapshots et de la corbeille. Mettez également en place un cluster en haute disponibilité.
06:38

Transcription

Comme tout système de fichiers et encore plus quand ils sont distribués, un cluster HDFS a besoin d'administration et de tâches régulières. On a notamment le FSCK. Le FSCK, donc File System Check, permet de vérifier l'intégrité du cluster, et peut être lancé donc, manuellement par un administrateur sur un répertoire ou un fichier. Notamment, on peut le lancer sur le répertoire « / », ainsi il vérifiera l'intégralité de l'arborescence fichier. Par défaut, il ne corrige pas les erreurs, mais il va uniquement rapporter les problèmes à l'utilisateur. Il va faire plusieurs rapports, notamment les fichiers écrits actuellement pour ouverture, qui ont un lock dessus. Le nombre de fichiers de blocs, de locations, de rack, et va permettre d'avoir deux actions supplémentaires qu'il faut spécifier dans la commande, afin de corriger les problèmes éventuels, qui sont donc l'action move, ou l'action delete. Ça permet de déplacer les fichiers à problèmes ou de les supprimer. Il est conseillé de le lancer dans tous les cas une première fois sans aucune action, pour voir les problèmes qu'il reporte, et ensuite de décider de l'action à faire. Il se lance avec la commande hdfs fsck /,pour le lancer donc, sur tout le cluster. On a également le Balancer qui est possible. Cela permet d'équilibrer le cluster. Il va déplacer des blocs d'un serveur à un autre, et va permettre ainsi de s'assurer que chaque serveur a le même taux d'utilisation. Attention, ça veut dire que si un serveur à un tout petit peu de stockage par rapport à un autre, il aura un tout petit peu de données par rapport à l'autre, puisqu'on s'assure qu'ils ont le même taux de remplissage. Le Balancer ne déplace pas les données entre les disques mais uniquement entre les serveurs. Il est surtout utile après l'ajout de nouveaux DataNodes qui sont donc vides. Par défaut, il s'arrête quand tous les serveurs du cluster sont équilibrés à plus ou moins 10 % de la moyenne. Pour lancer le Balancer, ça nécessite donc d'être superuser sur l'HDFS, je vous recommande de faire un sudo -u hdfs, et ensuite de lancer la commande hdfs balancer. Deux options sont possibles : Le threshold pour savoir à quel pourcentage il s'arrête, et le setBalancerBandwidth, qui permet de limiter la bande passante utilisée pour transférer les données afin de ne pas saturer le cluster HDFS. Attention, le Balancer est une opération qui peut être très longue sur de gros clusters, et durer plusieurs dizaines d'heures, voire plusieurs jours. La fédération de clusters permet de monter des clusters HDFS directement sur des points de montage dans l'arborescence. Un cluster, c'est un ou plusieurs NameNode qui sont dédiés réellement, directement à ce cluster. Ça permet de séparer les espaces de noms et donc également de faire de la « scalabilité » du NameNode. Ça permet potentiellement des meilleures performances, mais également, et surtout, de l'isolation entre différentes parties de l'arborescence sur l'HDFS. Les Snapshots permettent de créer directement des versions de l'HDFS du système de fichiers et des fichiers à un moment donné. Par la suite toutes les modifications qui seront faites auront une version originale et une nouvelle version. On peut créer des Snapshots directement avec hdfs dfs qui aide Snapshot, et les Snapshots ont un nom, et correspondent à un pass donné. On peut ensuite faire un diff avec le point de sauvegarde, le snapshot, et voir les modifications, ainsi que les restaurer. On a également sur l'HDFS une corbeille, désormais, activée par défaut, et qui est gérée par utilisateur. Tous les fichiers qui sont supprimés vont directement dans la corbeille. Si le fichier est supprimé de la corbeille, il est supprimé définitivement. La corbeille est nettoyée régulièrement via le système HDFS, via des checkpoints qui sont faits grâce à la directive de configuration fs.trash.checkpoint.interval. De la même façon, on peut définir la rétention grâce à la directive de configuration fs.trash.interval. Enfin, il est possible de mettre en place de la haute disponibilité pour un cluster HDFS. Au niveau des données, c'est bien entendu supporté nativement, puisque toutes les données sont répliquées sur plusieurs DataNodes, on a un ratio de réplication, et donc on a à priori, même dans le cadre où on a un ou deux DataNodes qui meurent, qui sautent, qui sont injoignables, on toujours accès à nos données. Cependant, on a notre NameNode qui a un « single point of failure », il nous en faut donc plusieurs. C'est désormais possible sous Hadoop de lancer plusieurs NameNodes, il y a cependant besoin donc, dans ce cas-là, de JournalNodes qui vont en fait transmettre les métadata modifiées sur le NameNode actif, directement à au moins la moitié des JournalNode, et s'assurer que tous les NameNodes en soient au même point, ou en tout cas un point noté comme stable. Tous les NameNodes en backup vont donc lire les modifications, les appliquer chez eux, et être prêts à prendre la relève. Ces JournalNodes fonctionnent avec un système de Quorum. C'est-à-dire qu'ils ont besoin d'être au moins trois, qu'ils ont besoins d'être un nombre impair, et qu'ils supportent la perte de n-1/2 nœuds. Ça veut dire que s'ils sont trois, ils supportent d'en perdre un. Dans ce cas-là, on n'utilise pas de Checkpoint node, ou de Secondary NameNode, qui étaient utilisés à l'époque où ne pouvaient pas mettre plusieurs NameNodes pour la haute disponibilité sous Hadoop. Les JournalNodes vont s'occuper de la bascule entre le NameNode actif et le NameNode de backup en élisant le nouveau NameNode actif parmi les NameNodes de backup disponibles. Par contre, cela veut dire que tous les clients devront nécessairement connaître tous les NameNodes pour pouvoir accéder aux systèmes de fichiers.

L'essentiel de Hadoop

Mettez en pratique les concepts spécifiques à Hadoop. Abordez l'HDFS pour le stockage, les MapReduce pour le traitement, ainsi que la base de données NoSQL d​e Hadoop : HBase.

3h43 (42 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
HBase HBase 1.2
Spécial abonnés
Date de parution :31 mars 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !