Comment installer et configurer Zookeeper dans Ubuntu 18.04

Comment installer et configurer Zookeeper dans Ubuntu 18.04

Zookeeper est un service centralisé pour maintenir les informations de configuration, nommer, fournir une synchronisation distribuée et fournir des services de groupe.
Tous ces types de services sont utilisés sous une forme ou une autre par des applications distribuées.

Dans cet article, nous avons expliqué les étapes nécessaires pour installer et configurer le cluster Zookeeper de nœud avec un quorum défini sur Ubuntu 18.04.

Dans ce tutoriel, vous apprendrez:

  • Qu'est-ce que Zookeeper et son aperçu.
  • Quelle est l'architecture de Zookeeper.
  • Comment configurer les hôtes Zookeeper et ajouter un utilisateur de Zookeeper.
  • Comment installer et configurer Oracle JDK.
  • Comment configurer et configurer le gardien de zoo.
  • Comment configurer les nœuds de travail pour rejoindre le cluster d'essaims.
  • Comment vérifier le cluster et l'ensemble de gardien de zoo.
Aperçu architectural de Zookeeper.

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Ubuntu 18.04
Logiciel zookeeper-3.4.12, Oracle JDK 1.8.0_192
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Présentation du Zookeeper



Zookeeper permet aux processus distribués de se coordonner les uns avec les autres via un espace de nom hiérarchique partagé des registres de données (nous appelons ces registres Znodes), un peu comme un système de fichiers. Contrairement aux systèmes de fichiers normaux, Zookeeper fournit à ses clients un débit élevé, une latence faible, hautement disponible, un accès strictement commandé aux ZNodes.

Les aspects de performance de Zookeeper permettent d'être utilisés dans de grands systèmes distribués. Les aspects de fiabilité l'empêchent de devenir le point de défaillance unique dans les grands systèmes. Sa commande stricte permet de mettre en œuvre des primitives de synchronisation sophistiquées au client.

L'espace de nom fourni par Zookeeper ressemble beaucoup à celui d'un système de fichiers standard. Un nom est une séquence d'éléments de chemin séparés par une barre oblique («/»). Chaque Znode dans l'espace de nom de Zookeeper est identifié par un chemin. Et chaque Znode a un parent dont le chemin est un préfixe du Znode avec un élément de moins; L'exception à cette règle est Root («/») qui n'a pas de parent. De plus, exactement comme les systèmes de fichiers standard, un Znode ne peut pas être supprimé s'il a des enfants.

Zookeeper a été conçu pour stocker les données de coordination: informations d'état, configuration, informations de localisation, etc.

Architecture de Zookeeper

Pour un service de gardien de zoo fiable, vous devez déployer Zookeeper dans un cluster connu sous le nom d'un ensemble. Tant que la majorité de l'ensemble est en place, le service sera disponible. Parce que Zookeeper nécessite une majorité, il est préférable d'utiliser un nombre impair de machines. Par exemple, avec quatre machines, Zookeeper ne peut gérer que la défaillance d'une seule machine; Si deux machines échouent, les deux machines restantes ne constituent pas une majorité. Cependant, avec cinq machines, Zookeeper peut gérer la défaillance de deux machines.

Chacun des composants qui fait partie de l'architecture Zookeeper a été expliqué ci-dessous.

  • Client - Clients, l'un des nœuds de notre cluster d'applications distribué, accéder aux informations du serveur. Pour un intervalle de temps particulier, chaque client envoie un message au serveur pour faire savoir au Sevel que le client est vivant.De même, le serveur envoie un accusé de réception lorsqu'un client se connecte. S'il n'y a pas de réponse du serveur connecté, le client redirige automatiquement le message vers un autre serveur.
  • Serveur - Server, l'un des nœuds de notre ensemble Zookeeper, fournit tous les services aux clients. Donne une reconnaissance au client pour informer que le serveur est vivant.
  • Chef - Node de serveur qui effectue une récupération automatique si l'un des nœuds connectés a échoué. Les dirigeants sont élus au démarrage du service.
  • Disciple - Node du serveur qui suit l'instruction du leader.

Configurez les hôtes de Zookeeper et ajoutez un utilisateur de Zookeeper

Avant d'installer les packages Zookeeper nécessaires pour la configuration, nous configurerons le fichier hôte sur tous les nœuds Ubuntu. Après cela, nous créerons un utilisateur de Zookeeper sur les trois nœuds car le démon de Zookeeper doit être exécuté comme gardien de zoo utilisateur lui-même.



Ici, nous avons utilisé 3 Ubuntu 18.04 machines.

Zookeeper Node1 - 192.168.1.102 (nom d'hôte - Node1) Zookeeper node2 - 192.168.1.103 (nom d'hôte - Node2) Zookeeper Node3 - 192.168.1.105 (nom d'hôte - Node3) 

Modifier le / etc / hôtes fichier sur les trois nœuds via faire un get ou vigueur Et effectuez les modifications suivantes:

192.168.1.102 Node1 192.168.1.103 Node2 192.168.1.105 Node3 
Copie

Après avoir modifié avec les détails ci-dessus dans le fichier des hôtes, vérifiez la connectivité avec un ping entre tous les nœuds.

Maintenant, créez le nouveau gardien de zoo Utilisateur et groupe à l'aide de la commande:

# AddUser Zookeeper 

Installer et configurer Oracle JDK

Télécharger et extraire les archives Java sous le /opter annuaire. Pour plus d'informations, rendez-vous sur la façon d'installer Java sur Ubuntu 18.04.

Pour définir le JDK 1.8 MISE À JOUR 192 En tant que JVM par défaut, nous utiliserons les commandes suivantes:

# Mise à jour-alternatifs - install / usr / bin / java java / opt / jdk1.8.0_192 / bin / java 100 # mise à jour-alternatifs - install / usr / bin / javac javac / opt / jdk1.8.0_192 / bin / javac 100 

Après l'installation pour vérifier que le java a été configuré avec succès, exécutez les commandes suivantes:

# Update-Alteratives - Display Java # Update-Alteratives - Display Javac 

Pour vérifier la version Java, exécutez les commandes suivantes:

# Java -Version 

Lors de l'installation réussie, vous obtiendrez les informations ci-dessous:

Version Java "1.8.0_192 "Java (TM) SE Runtime Environment (Build 1.8.0_192-b12) Java Hotspot (TM) 64 bits serveur VM (build 25.192-b12, mode mixte) 


Configurer et configurer le gardien de zoo

Téléchargez et dézip le package Zookeeper de l'archive officielle Apache dans les trois machines Ubuntu comme indiqué ci-dessous:

$ wget https: // www-us.apache.org / dist / zookeeper / stable / zookeeper-3.4.12.le goudron.gz 
$ tar -xzvf zookeeper-3.4.12.le goudron.gz 

Modifier le bashrc Pour l'utilisateur de Zookeeper via la configuration des variables d'environnement de Zookeeper suivantes.

exporter zoo_log_dir = / var / log / zookeeper 

Source le .Bashrc dans la session de connexion en cours:

$ source ~ /.bashrc 

Maintenant, créez le répertoire gardien de zoo sous / var / lib dossier qui servira de répertoire de données ZooKeeper et en créera un autre gardien de zoo répertoire sous / var / log où tous les journaux de gardiens de zoo seront capturés. La propriété de l'annuaire doit être modifiée en tant que Zookeeper.

$ sudo mkdir / var / lib / zookeeper; cd / var / lib; Sudo Chown Zookeeper: ZooKeeper Zookeeper / $ sudo mkdir / var / log / zookeeper; cd / var / log; Sudo Chown Zookeeper: Zookeeper Zookeeper / 

Créez l'ID de serveur pour l'ensemble. Chaque serveur de gardien de zoo doit avoir un numéro unique dans le ma pièce d'identité fichier dans l'ensemble et devrait avoir une valeur comprise entre 1 et 255.

Dans Node1

$ sudo sh -c "echo '1'> / var / lib / zookeeper / myid" 

Dans Node2

$ sudo sh -c "echo '2'> / var / lib / zookeeper / myid" 

Dans Node3

$ sudo sh -c "echo '3'> / var / lib / zookeeper / myid" 

Maintenant, allez dans le dossier Conf dans le répertoire de la maison Zookeeper (emplacement du Zookeeper Directory après que les archives ont été décompressées / extraites).

$ cd / home / zookeeper / zookeeper-3.4.13 / conf / 


zookeeper @ node1: ~ / zookeeper-3.4.13 / confr $ ls -lrth total 16k -rw-r - r-- 1 Zookeeper zookeeper 922 29 juin 21:04 Zoo_sample.CFG -RW-R - R-- 1 ZOOKEEPER ZOOKEEPER 535 JUN 29 21:04 Configuration.xsl -rw-r - r-- 1 Zookeeper zookeeper 999 nov 24 18:29 Zoo.cfg -rw-r - r-- 1 zookeeper zookeeper 2.2K NOV 24 19:07 LOG4J.propriétés 
Copie

Par défaut, un exemple de fichier de confie avec nom zoo_sample.CFG sera présent dans confli annuaire. Vous devez en faire une copie avec nom zoo.CFG Comme indiqué ci-dessous, et modifiez nouveau zoo.CFG comme décrit sur les trois machines Ubuntu.

$ cp zoo_sample.Zoo CFG.CFG 
$ ls -lrth / home / zookeeper / zookeeper-3.4.13 / conf total 16k -rw-r - r-- 1 Zookeeper Zookeeper 922 29 juin 21:04 Zoo_sample.CFG -RW-R - R-- 1 ZOOKEEPER ZOOKEEPER 535 JUN 29 21:04 Configuration.xsl -rw-r - r-- 1 Zookeeper zookeeper 999 nov 24 18:29 Zoo.cfg -rw-r - r-- 1 zookeeper zookeeper 2.2K NOV 24 19:07 LOG4J.propriétés 
Copie
$ vim / home / zookeeper / zookeeper-3.4.13 / conf / zoo.CFG 
datadir = / var / lib / zookeeper serveur.1 = Node1: 2888: 3888 Server.2 = Node2: 2888: 3888 Server.3 = node3: 2888: 3888 
Copie

Modifications de configuration du gardien de zoo.



Maintenant, effectuez les changements ci-dessous log4.propriétés fichier comme suit.

$ vim / home / zookeeper / zookeeper-3.4.13 / conf / log4j.propriétés 
gardien de zoo.enregistrer.dir = / var / log / zookeeper zookeeper.tracelog.dir = / var / log / zookeeper log4j.rootLogger = info, console, file de roulement 
Copie

Modifications de configuration Log4J de Zookeeper.

Une fois la configuration effectuée dans zoo.CFG Fichier dans les trois nœuds, démarrez Zookeeper dans les trois nœuds un par un, en utilisant la commande suivante:

$ / home / zookeeper / zookeeper-3.4.13 / bin / zkserver.SH Start 

Le service de gardien de zoo commence sur les trois nœuds.

Le fichier journal sera créé dans / var / log / zookeeper de Zookeeper nommé gardien de zoo.enregistrer, queuez le fichier pour voir les journaux pour toutes les erreurs.

$ tail -f / var / log / zookeeper / zookeeper.enregistrer 


Vérifiez le cluster et l'ensemble de gardien de zoo

Dans l'ensemble Zookeeper sur trois serveurs, l'un sera en mode leader et les deux autres seront en mode suiveur. Vous pouvez vérifier l'état en exécutant les commandes suivantes.

$ / home / zookeeper / zookeeper-3.4.13 / bin / zkserver.statut SH 

Vérification de l'état du service de gardien de zoo.

$ Echo Stat | NC Node1 2181 

Répertorie les brefs détails pour le serveur et les clients connectés.

$ echo mnttr | NC Node1 2181 

Zookeeper Liste des variables pour la surveillance de la santé des grappes.



$ echo srvr | NC localhost 2181 

Répertorie les détails du serveur ZooKeeper.

Si vous devez vérifier et voir le Znode, vous pouvez vous connecter en utilisant la commande ci-dessous sur l'un des nœuds ZooKeeper:

$ / home / zookeeper / zookeeper-3.4.13 / bin / zkcli.sh -server 'hostname -f': 2181 

Connectez-vous au nœud de données ZooKeeper et répertorie le contenu.

Conclusion

Il est devenu l'un des choix les plus préférés pour créer des systèmes distribués hautement disponibles à grande échelle. ZooKeeper Project est l'un des projets les plus réussis de la Fondation Apache, il a été largement adopté par les meilleures sociétés, offrant de nombreux avantages liés aux mégadonnées.

Fournissant une base solide pour mettre en œuvre différents outils de Big Data, Apache Zookeeper a permis aux entreprises de fonctionner en douceur dans le monde du Big Data. Sa capacité à offrir à la fois plusieurs avantages en a fait l'une des applications les plus préférées à mettre en œuvre à grande échelle.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Comment créer un cluster Kubernetes
  • Comment installer Kubernetes sur Ubuntu 20.04 Focal Fossa Linux
  • Comment installer Kubernetes sur Ubuntu 22.04 Jammy Jellyfish…
  • Installation d'Oracle Java sur Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Linux: installer Java
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Oracle Linux vs Red Hat (Rhel)
  • Masterring Bash Script Loops