Utilisation du NameNode secondaire et haute disponibilité en Hadoop 2.x
pouvez-vous s'il vous plaît m'aider aux scénarios ci-dessous.
1) lors de L'utilisation de Hadoop V2, utilisons-nous le NameNode secondaire dans l'environnement de production?
2) pour Hadoop V2, supposons que nous utilisions des neurones muliple en connexion active/passive pour une grande disponibilité et lorsque le fichier journal D'édition est en pleine croissance,
comment le journal des modifications est-il appliqué à fsimage? Si c'est le cas, l'application de l'énorme journal des modifications à Namenode serait le temps consommer pendant le démarrage de Namenode? (Nous avons eu Secondary NameNode dans hadoop v1 pour résoudre ce problème)
2 réponses
répond à vos questions:
1) en utilisant Hadoop V2, utilisons-nous le NameNode secondaire dans l'environnement de production?
noeud de nom secondaire n'est pas nécessaire dans l'environnement de production si vous déployez noeud StandByName pour la haute disponibilité de noeud de nom.
2) Comment le journal des modifications est-il appliqué à fsimage en l'absence de noeud secondaire?
pour répondre à cette question, vous devez comprendre comment la haute disponibilité a été mise en œuvre dans Hadoop de deux façons différentes. : haute disponibilité avec QJM et haute disponibilité avec la Fédération NFS
mais dans ces deux approches, QJM ( Quorum Journal Manager ) est préférable.
dans un groupe de HA typique, deux les 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 noeud de secours reste synchronisé avec le noeud actif, les deux noeuds communiquent avec un groupe de démons séparés 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 de nom ne se diverge pas en raison de basculement.
j'ai expliqué le processus de basculement pour le noeud de nom de manière détaillée à mon autre StackOverFlow question : comment Hadoop processus de basculement Namenode œuvres?
1) en utilisant Hadoop V2, utilisons-nous le NameNode secondaire dans l'environnement de production?
cela dépend complètement de la façon dont votre environnement de production se configure. Dans le cas où vous utilisez Hadoop V2 avec HA, vous n'avez pas besoin de NameNode secondaire dans la production car votre NameNode esclave effectuera les mêmes tâches que le NameNode secondaire de manière optimale. Mais dans le cas où votre installation de production ne tire pas profit de NameNode HA que vous doivent utiliser le NameNode secondaire pour checkpointing. Reportez-Vous À Compréhension Hadoop 2.x l'Architecture et c'est de Démons pour plus d'informations sur cette.
2) pour Hadoop V2, supposons que nous utilisions muliple NameNodes dans une connexion active/passive pour une haute disponibilité et lorsque le fichier journal D'édition est énorme,
d'après ce que j'ai compris, votre principale préoccupation est "comment éditer les logs sont gérés avec NameNode HA dans Hadoop V2?"
Voici la réponse: éditer la gestion des journaux peut être fait avec Quorum Journal Manager (QJM) ou NFS Shared Storage
avec QJM, il y a un groupe de démons appelés JournalNode (JN) qui communiquent avec active NameNode. Ce groupe est constamment à la recherche de toutes les mises à jour effectuées par active NameNode et maintenir l'état. Le NameNode de veille reçoit constamment les mises à jour de journal d'édition de JNs et maintient le fichier editlog mis à jour.
avec le stockage partagé NFS, tant le NameNode actif que le NameNode en veille ont l'accès à un répertoire particulier sur le stockage partagé (I. E Système de fichiers réseau). En cas de mise à jour effectuée par NameNode, il enregistre l'événement dans le répertoire partagé. De L'autre côté, StandBy NameNode recherche la mise à jour sur le même répertoire partagé et met à jour les journaux simultanément.
j'espère que cela aidera...