Zookeeper

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Coordination de systèmes distribués
Utilisé par HBase, Storm, Kafka...
Fournit configuration partagée, élection de leader, verrous distribués
Voir aussi Hadoop · HBase · Storm

Apache ZooKeeper est un service centralisé de coordination pour systèmes distribués : maintien d'informations de configuration partagées, nommage de ressources, synchronisation entre nœuds, et services de groupe (savoir quels nœuds d'un cluster sont vivants à un instant donné).

Il ne stocke pas de grandes quantités de données (ce n'est pas une base de données applicative) mais de petits enregistrements critiques pour le fonctionnement du cluster — c'est la brique sur laquelle s'appuient de nombreux systèmes distribués de l'écosystème Bigdata pour éviter de réimplémenter chacun leur propre mécanisme de consensus.

Cas d'usage typiques

  • Élection de leader — désigner un nœud maître unique parmi plusieurs candidats
 (ex. le maître HBase).
  • Configuration partagée — distribuer un paramètre à tous les nœuds d'un cluster de
 façon cohérente.
  • Verrous distribués — garantir qu'une seule instance exécute une opération critique à
 la fois.
  • Registre de service — savoir quels nœuds d'un cluster sont actifs (HBase l'utilise
 pour suivre ses region servers, Storm pour l'état de ses workers).

Déploiement

ZooKeeper se déploie en 'ensemble (ensemble) de nœuds impairs (3, 5, 7...) pour garantir un quorum en cas de panne d'une minorité de nœuds — un déploiement à un seul nœud n'offre aucune tolérance de panne et ne doit être utilisé qu'en développement/test.

Voir aussi

  • Hadoop — écosystème Bigdata dans lequel ZooKeeper est fréquemment déployé
  • HBase — dépend de ZooKeeper pour son fonctionnement
  • Storm — utilise ZooKeeper pour la coordination de cluster