Comment fonctionne le processus de basculement Hadoop Namenode?

Hadoop defintive guide says -

chaque mode de fonctionnement du système fonctionne un processus de commande de basculement léger dont travail il est pour surveiller son mode de Namen pour les échecs (en utilisant un simple mécanisme de battement de coeur) et déclencher un basculement en cas de namenode échouer.

comment se fait-il qu'un namenode puisse exécuter quelque chose pour détecter sa propre défaillance?

qui envoie heartbeat pour qui?

où se déroule ce processus?

comment détecte-t-il la défaillance du namenode?

à qui il notifie pour la transition?

14
demandé sur Ravindra babu 2015-10-24 00:21:08

1 réponses

à Partir de Apache docs

le zkfailovercontroller (ZKFC) est un nouveau composant qui est un client ZooKeeper qui surveille et gère également l'état du NameNode. Chacune des machines qui exécute un NameNode exécute également un ZKFC , et que ZKFC est responsable de:

santé suivi -le ZKFC chante son local NameNode sur une base périodique avec une commande de contrôle de santé. Aussi longtemps que le NameNode répond de façon opportune avec un état sain, le ZKFC considère le noeud sain. Si le noeud s'est écrasé, gelé, ou autrement entré dans un état malsain, le moniteur de santé le marquera comme malsain.

gestion des sessions des gardiens de Zoo - lorsque le mode local est sain, le ZKFC tient une session ouverte dans le ZooKeeper. Si le NameNode local est actif, il contient aussi un " lock " znode spécial. Cette serrure utilise le support de Zokeeper pour les noeuds" éphémères "; si la session expire, le noeud de serrure sera automatiquement supprimé.

élection basée sur un gardien de Zoo - si le local NameNode est sain, et le ZKFC voit qu'aucun autre noeud détient actuellement la serrure znode, il va lui-même essayer d'acquérir la serrure. Si elle réussit, alors elle a " Remporté l'élection ", et est responsable d'exécuter un échec pour rendre son local NameNode actif.

Avoir un oeil à cette Apache PDF qui fait partie des HDFS-2185 JIRA question

diapositive 16 de

http://www.slideshare.net/cloudera/hdfs-update-lipcon-federal-big-data-apache-hadoop-forum

enter image description here :

Automatique Namenode processus de basculement dans Hadoop:

dans un cluster HA typique, deux machines séparées sont configurées comme NameNodes. À tout moment, exactement de la NameNodes est dans un état Actif, et l'autre est dans un état de Veille. Le NameNode actif est responsable de toutes les opérations du client dans le cluster, tandis que le Standby agit simplement comme un esclave, en maintenant un état suffisant pour fournir un basculement rapide si nécessaire.

pour que le Namenode de secours reste synchronisé avec le Namenode actif, les deux noeuds communiquent avec un groupe de noeuds séparés les démons appelés JournalNodes (JNs).

quand n'importe quelle modification d'espace de noms est effectuée par le noeud actif, il enregistre de façon durable un enregistrement de la modification à une majorité de ces JNs. Le noeud de veille lit ces modifications depuis le JNs et s'applique à son propre espace de nom.

dans le cas d'un basculement, la veille s'assurera qu'elle a lu toutes les éditions des JounalNodes avant de se promouvoir à l'état actif. Ce s'assure que l'état namespace est entièrement synchronisé avant qu'un basculement ne se produise.

il est vital pour un groupe D'AP qu'un seul des NameNodes soit actif à la fois. ZooKeeper a été utilisé pour éviter le scénario de cerveau divisé de sorte que l'état du noeud du nom ne se diverge pas en raison de basculement.

diapositive 8 de: http://www.slideshare.net/cloudera/hdfs-futures-world2012-widescreen

enter image description here :

En Résumé: Nom de Nœud est Démon Et de Basculement contrôleur est un Démon . Si le démon de nom Node échoue, le démon de contrôleur de basculement détecte et prend des mesures correctives. Même si la machine entière tombe en panne, le serveur ZooKeeper le détecte et le verrouillage sera expiré et un autre noeud de nom de veille sera élu comme noeud de nom Actif.

29
répondu Ravindra babu 2016-12-06 14:48:31