Pourquoi avons-nous besoin de ZooKeeper dans la pile Hadoop?

Je suis nouveau à Hadoop/ZooKeeper. Je ne comprends pas pourquoi utiliser ZooKeeper avec Hadoop, est-ce que ZooKeeper écrit des données dans Hadoop? Si non, alors pourquoi utilisons-nous ZooKeeper avec Hadoop?

0
Et où Zookeeper est-il utilisé dans Hadoop?
ajouté l'auteur Thomas Jungblut, source

3 Réponses

De la page de documentation de zookeeper :

ZooKeeper est un service centralisé de gestion des informations de configuration, de nommage, de synchronisation distribuée et de fourniture de services de groupe. Tous ces types de services sont utilisés sous une forme ou une autre par des applications distribuées.

     

Chaque fois qu'ils sont implémentés, il y a beaucoup de travail pour corriger les bugs et les conditions de course qui sont inévitables. En raison de la difficulté de mise en œuvre de ces types de services, les applications les lésent d'abord généralement, ce qui les rend fragiles en présence de changements et difficiles à gérer. Même lorsque cela est fait correctement, différentes implémentations de ces services entraînent une complexité de gestion lorsque les applications sont déployées.

De la hadoop page de documentation:

Le projet Apache ™ Hadoop® développe des logiciels open-source pour une informatique distribuée fiable et évolutive.

     

La bibliothèque de logiciels Apache Hadoop est un framework qui permet le traitement distribué de grands ensembles de données à travers des clusters d'ordinateurs en utilisant des modèles de programmation simples

En ce qui concerne votre requête:

Pourquoi avons-nous besoin de ZooKeeper dans Hadoop Stack?

Le facteur de liaison est le traitement distribué et la haute disponibilité.

par exemple. Hadoop Namenode échoue sur le processus.

Hadoop high availability is designed around Active Namenode & Standby Namenode for fail over process. At any point of time, you should not have two masters ( active Namenodes) at same time.

À partir du lien de documentation d'Apache sur HDFSHighAvailabilityWithQJM :

Il est essentiel pour le bon fonctionnement d'un cluster HA qu'un seul NameNode soit actif à la fois. Dans le cas contraire, l'état de l'espace de noms divergerait rapidement entre les deux, risquant ainsi la perte de données ou d'autres résultats incorrects. Afin de garantir cette propriété et d'empêcher le soi-disant «scénario split-brain», le JournalNodes n'autorisera jamais qu'un seul NameNode à être un écrivain à la fois.

     

Lors d'un basculement, le NameNode qui doit devenir actif assumera simplement le rôle d'écriture dans JournalNodes, ce qui empêchera efficacement l'autre NameNode de continuer à l'état Active, permettant au nouvel Active de procéder en toute sécurité au basculement.

Zookeeper a été utilisé pour éviter le scénario Split-brain. Vous pouvez trouver le rôle de Zookeeper dans la question ci-dessous:

Comment fonctionne le processus de basculement Hadoop Namenode?

0
ajouté

Hadoop 1.x n'utilise pas Zookeeper. HBase utilise zookeeper même dans les installations Hadoop 1.x.

Hadoop a également adopté Zookeeper à partir de la version 2.0.

Le but de Zookeeper est la gestion de cluster. Cela correspond à la philosophie générale de * nix d'utiliser de plus petits composants spécialisés - donc les composants de Hadoop qui veulent des capacités de clustering s'appuient sur Zookeeper plutôt que de développer les leurs.

Zookeeper est un stockage distribué qui fournit les garanties suivantes (copié à partir de la page d'aperçu de Zookeeper ) :

  • Cohérence séquentielle - Les mises à jour d'un client seront appliquées dans le ordonner qu'ils ont été envoyés.
  • Atomicité - Les mises à jour réussissent ou échouer. Pas de résultats partiels.
  • Image système unique - Un client verra le même vue du service quel que soit le serveur qu'il connecte à.
  • Fiabilité - Une fois qu'une mise à jour a été appliquée, elle persistera à partir de ce moment jusqu'à ce qu'un client écrase la mise à jour.
  • Rapidité - La vue des clients sur le système est garantie à jour dans un certain délai.

Vous pouvez les utiliser pour implémenter différentes " recettes " requises pour la gestion des clusters. serrures, élection de chef etc.

Si vous utilisez ZooKeeper vous-même, je vous recommande de consulter le conservateur de Netflix le rend plus facile à utiliser (par exemple, ils mettent en œuvre quelques recettes hors de la boîte)

0
ajouté
Quand vous dites 'Hadoop a adopté Zookeeper aussi bien à partir de la version 2.0.', Cela signifie-t-il que zookeeper est inclus dans hadoop distribution ver 2.0 partir?
ajouté l'auteur user3282777, source
Merci. Cloudera blog était très instructif.
ajouté l'auteur user3282777, source
Comme la plupart des distributions incluaient HBase, elle était là avant la v.2. En V2. YARN utilise également zookeeper pour HA (en fait, vous pouvez utiliser des méthodes moins fiables, mais c'est la façon recommandée voir par exemple blog.cloudera.com/blog/2014/05/how-apache-hadoop-yarn-ha-wor‌ ks ) donc je ne sais pas pense que vous pourriez trouver ou créer une distribution sans
ajouté l'auteur Arnon Rotem-Gal-Oz, source

Zookeeper résout le problème de la coordination distribuée fiable, et hadoop est un système distribué, non?

Il y a un excellent document Algorithme Paxos qui vous pouvez lire à ce sujet.

0
ajouté
pile overflow 101: dans la plupart des cas, le plus court sera le mieux
ajouté l'auteur Junchen Liu, source
+1 pour la référence paxos
ajouté l'auteur grinch, source