Expliquer NameNode et DataNode dans HDFS ?

Un cluster HDFS possède deux types de nœuds fonctionnant selon un schéma maître-esclave :

1. NameNode (le maître) et
2. nombre de DataNodes (esclaves/travailleurs).

HDFS NameNode
1. NameNode est le principal composant central du cadre d’architecture HDFS.
2. NameNode est également connu comme le nœud maître.
3. HDFS Namenode stocke des méta-données, c’est-à-dire le nombre de blocs de données, le nom du fichier, le chemin, les ID de bloc, l’emplacement du bloc, le nombre de répliques et également la configuration liée à l’esclave. Ces méta-données sont disponibles en mémoire dans le maître pour une récupération plus rapide des données.
4. NameNode conserve les méta-données liées à l’espace de noms du système de fichiers en mémoire, pour un temps de réponse plus rapide. Par conséquent, plus de mémoire est nécessaire. Donc, la configuration de NameNode devrait être déployée sur une configuration fiable.
5. NameNode maintient et gère les nœuds esclaves, et leur assigne des tâches.
6. NameNode a connaissance de tous les DataNodes contenant des blocs de données pour un fichier donné.
7. NameNode coordonne avec des centaines ou des milliers de nœuds de données et sert les demandes provenant des applications clientes.
Deux fichiers ‘FSImage’ et le ‘EditLog’ sont utilisés pour stocker les informations de métadonnées.

FsImage : C’est l’instantané du système de fichiers lorsque Name Node est démarré. Il s’agit d’un « fichier image ». FsImage contient l’ensemble de l’espace de noms du système de fichiers et stocké comme un fichier dans le système de fichiers local du NameNode. Il contient également une forme sérialisée de tous les répertoires et inodes de fichiers dans le système de fichiers. Chaque inode est une représentation interne des métadonnées du fichier ou du répertoire.

EditLogs : Il contient toutes les modifications récentes apportées au système de fichiers sur l’image FsImage la plus récente. NameNode reçoit une demande de création/mise à jour/suppression de la part du client. Après cela, cette demande est d’abord enregistrée dans le fichier edits.

Fonctions de NameNode dans HDFS

1. C’est le démon maître qui maintient et gère les DataNodes (nœuds esclaves).
2. Il enregistre les métadonnées de tous les fichiers stockés dans le cluster, par exemple, l’emplacement des blocs stockés, la taille des fichiers, les permissions, la hiérarchie, etc.
3. Il enregistre chaque changement qui a lieu sur les métadonnées du système de fichiers. Par exemple, si un fichier est supprimé dans HDFS, le NameNode l’enregistre immédiatement dans l’EditLog.
4. Il reçoit régulièrement un Heartbeat et un rapport de bloc de tous les DataNodes du cluster pour s’assurer que les DataNodes sont sous tension.
5. Il conserve un enregistrement de tous les blocs dans HDFS et dans quels nœuds ces blocs sont situés.
6. Le NameNode est également responsable de prendre soin du facteur de réplication de tous les blocs.
7. En cas de défaillance du DataNode, le NameNode choisit de nouveaux DataNodes pour les nouvelles répliques, équilibre l’utilisation du disque et gère le trafic de communication vers les DataNodes.

HDFS DataNode
1. DataNode est également connu sous le nom de nœud esclave.
2. Dans l’architecture Hadoop HDFS, DataNode stocke les données réelles dans HDFS.
3. DataNodes responsable du service, des demandes de lecture et d’écriture pour les clients.
4. DataNodes peut se déployer sur du matériel de commodité.
5. Les DataNodes envoient des informations au NameNode sur les fichiers et les blocs stockés dans ce nœud et répondent au NameNode pour toutes les opérations du système de fichiers.
6. Quand un DataNode démarre, il s’annonce au NameNode avec la liste des blocs dont il est responsable.
7. Le DataNode est généralement configuré avec beaucoup d’espace disque dur. Parce que les données réelles sont stockées dans le DataNode.

Fonctions du DataNode dans HDFS
1. Ce sont des démons ou des processus esclaves qui s’exécutent sur chaque machine esclave.
2. Les données réelles sont stockées sur les DataNodes.
3. Les DataNodes exécutent les demandes de lecture et d’écriture de bas niveau des clients du système de fichiers.
4. Chaque DataNode envoie un message de battement de cœur au Name Node toutes les 3 secondes et transmet qu’il est vivant. Dans le scénario où le Name Node ne reçoit pas de heartbeat d’un Data Node pendant 10 minutes, le Name Node considère ce Data Node particulier comme mort et commence le processus de réplication de blocs sur un autre Data Node.
5. Tous les nœuds de données sont synchronisés dans le cluster Hadoop de manière à ce qu’ils puissent communiquer entre eux et s’assurer de
i. Équilibrer les données dans le système
ii. Déplacer les données pour garder une réplication élevée
iii. Copier les données lorsque cela est nécessaire