Zookeeper
| 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.