Vidéo: HBase Tutorial - Introduction To NoSQL 2024
Un grand groupe de bases de données NoSQL est une chose difficile à gérer. Apache Zookeeper à la rescousse! Le suivi des noeuds du cluster, les données qu'ils gèrent et la sélection des nouveaux maîtres en cas de défaillance d'un maître ne sont pas des tâches faciles.
La coordination de grands systèmes distribués est donc très difficile. Les bases de données Hadoop et NoSQL distribuées doivent pouvoir gérer la configuration d'un cluster entier. Ce processus doit également être hautement disponible afin qu'il ne soit pas un point de défaillance unique dans l'ensemble du système.
C'est là qu'intervient Apache Zookeeper. Zookeeper fournit un service de coordination réparti et transactionnel.
Plusieurs autres produits utilisent Zookeeper pour la gestion des clusters:
-
Apache Hadoop
-
Solr Cloud
-
Neo4j
-
Accumulo
-
HBase
-
Rackspace
-
Zynga
-
Yahoo! (pour plusieurs de ses services)
Zookeeper fournit une structure de stockage hiérarchique en mémoire similaire à un système de fichiers d'ordinateur. Cette structure est gérée par le maître Zookeeper actuel et répliquée parmi les autres nœuds du cluster. Un cluster Zookeeper est appelé un Zookeeper e nsemble.
Seul le maître gère les mises à jour (écritures) vers le stockage. Ces modifications sont vérifiées sur le disque pour les rendre durables, puis répliquées sur les autres instances Zookeeper de l'ensemble.
Ces services stockent leurs données de configuration de cluster dans Zookeeper. Certains d'entre eux stockent également les plages de clés pour les fragments de leur base de données. Cela permet aux clients qui utilisent une base de données NoSQL utilisant Zookeeper de communiquer avec n'importe quel serveur Zookeeper de l'ensemble. De cette façon, les clients peuvent découvrir quels serveurs NoSQL contiennent les données qui les intéressent.
Chercher quel nœud stocke quelle gamme de clés minimise la charge sur les serveurs NoSQL, car ils n'ont pas besoin de transférer les demandes de données depuis un noeud NoSQL au noeud qui contient réellement les données.
Vous pouvez également utiliser le stockage de données de Zookeeper pour le stockage éphémère (stockage qui ne durera pas au-delà d'un redémarrage du service), ce qui est utile pour stocker des données de session ou d'autres données d'exécution.
Les serveurs Zookeeper utilisent ce stockage éphémère pour déterminer qui prend le relais en cas de défaillance d'un maître. Chaque serveur crée un znode éphémère numéroté (fichier de stockage) dans l'espace clé. Si le maître Zookeeper (leader) subit une défaillance matérielle, le propriétaire du znode suivant dans la séquence devient le maître. C'est une solution élégante et évite l'effet "troupeau" où tous les serveurs communiquent frénétiquement entre eux pendant quelques secondes pour sélectionner un nouveau maître.
Zookeeper est une excellente solution Java aux problèmes inhérents à la gestion coordonnée des systèmes et à la haute disponibilité. Vous pouvez l'utiliser pour implémenter des services hautement disponibles, y compris des services de messagerie. Donc, si vous avez besoin de créer un nouveau service distribué, pensez à utiliser Zookeeper.