Apache ZooKeeper
Apache ZooKeeper est un logiciel open source de la Apache Software Foundation. Il s'agit d'un logiciel de gestion de configuration pour systèmes distribués. ZooKeeper était un sous projet de Hadoop mais il est désormais un projet top-level à part entière.
Développé par | Apache Software Foundation |
---|---|
Première version | [1] |
Dernière version |
3.8.0 ()[2] 3.8.1-1 ()[3] |
DĂ©pĂ´t | gitbox.apache.org/repos/asf?p=zookeeper.git, github.com/apache/zookeeper.git et gitbox.apache.org/repos/asf/zookeeper.git |
Écrit en | Java |
Environnement | Machine virtuelle Java |
Type |
Projet de la fondation Apache (d) Bases de données clé-valeur |
Licence | Licence Apache |
Site web | zookeeper.apache.org |
L'architecture de ZooKeeper supporte une haute disponibilité grâce à des services redondants. Les clients peuvent ainsi interroger un autre leader ZooKeeper si le premier ne répond pas. Les nœuds de ZooKeeper stockent leurs données dans un espace de noms hiérarchique, tout comme un système de fichiers ou une structure de données arborescente. Les clients peuvent lire et écrire dans les nœuds et ainsi avoir un service de configuration partagée. Les mises à jour sont totalement ordonnées[4].
ZooKeeper est utilisé par des sociétés comme Rackspace, Yahoo![5], Odnoklassniki[6] et eBay ainsi que des systèmes de recherche open source comme Solr[7].
Architecture Apache ZooKeeper
Voici quelques termes courant dans l'architecture Zookeeper:
- Node: Les systèmes installés sur le cluster.
- ZNode: les nœuds dont le statut est mis à jour par d'autres nœuds du cluster.
- Client Applications: Les outils qui interagissent avec les applications distribuées
- Server Applications: Permet aux applications clientes d'interagir Ă l'aide d'une interface commune.
Les services du cluster sont répliqués et stockés sur un ensemble de serveurs (appelés "ensemble"), chacun d'entre eux maintiennent une base de données en mémoire contenant l'arbre d'état complet des données ainsi qu'un journal des transactions et des snapshots stockés en permanence. Plusieurs applications client peuvent se connecter à un serveur, et chaque client maintient une connexion TCP par laquelle il envoie des requêtes et des TIC et reçoit des réponses et surveille les événements[8].
Cas d'utilisation classique
- Naming service
- Gestion de configuration
- Synchronisation
- Leader election
- File d'attente de message
- Notification system
Bibliothèques cliente
En plus des bibliothèques clientes incluses dans la distribution ZooKeeper, un certain nombre de bibliothèques tierces telles qu'Apache Curator et Kazoo sont disponibles qui facilitent l'utilisation de ZooKeeper, ajoutent des fonctionnalités supplémentaires.
Projets Apache utilisant ZooKeeper
- Apache Hadoop
- Apache HBase
- Apache Hive
- Apache Kafka
- Apache Solr
etc.
Articles connexes
- Hadoop
- Catégorie:Écosystème Hadoop
Références
Liens externes
- Site officiel
- Article in highscalability.com
- Software Development Times article of ZooKeeper moving to Apache
- Eclipse ECF Discovery based on Apache ZooKeeper
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Apache ZooKeeper » (voir la liste des auteurs).