Présentation
Gardien de zoo est un projet Apache Software Foundation conçu pour simplifier la surveillance et la gestion des services de groupe. Il utilise une interface simple pour son service de coordination centralisé qui gère la configuration, les informations, la dénomination, la synchronisation distribuée et le provisionnement.
Dans ce didacticiel, découvrez comment installer et configurer Apache ZooKeeper sur Ubuntu 18.04 ou 20.04.
Prérequis
- Un système Linux exécutant Ubuntu 20.04 ou 18.04
- Accès à une fenêtre de terminal/ligne de commande (Rechercher> Terminal )
- Un compte utilisateur avec sudo ou racine privilèges
Installer Apache ZooKeeper sur Ubuntu
Étape 1 :Installer Java
ZooKeeper est écrit en Java et nécessite ce langage de programmation pour fonctionner. Pour vérifier si Java est déjà installé, exécutez la commande :
java --version
Si la sortie affiche une version Java en cours d'exécution, vous pouvez passer à l'étape suivante. Si le système indique qu'il n'y a no such file or directory
, vous devez installer Java avant de passer à ZooKeeper.
Il existe différents packages Java open source disponibles pour Ubuntu. Trouvez celui qui vous convient le mieux et son guide d'installation dans Comment installer Java sur Ubuntu. Les instructions s'appliquent à Ubuntu 18.04 et Ubuntu 20.04.
Étape 2 :Créer un utilisateur pour ZooKeeper
1. Créez un utilisateur distinct pour le service ZooKeeper en saisissant :
useradd zookeeper -m
Le -m
flag crée un répertoire personnel pour l'utilisateur. Dans ce cas, ce sera /home/zookeeper
. Pour nommer l'utilisateur différemment, remplacez zookeeper
avec le nom de votre choix.
2. Ensuite, définissez bash
comme shell par défaut pour le nouvel utilisateur avec la commande :
usermod --shell /bin/bash zookeeper
3. Définissez un mot de passe pour l'utilisateur :
passwd zookeeper
Tapez et retapez un mot de passe fort pour l'utilisateur ZooKeeper.
4. Ensuite, ajoutez l'utilisateur au groupe sudoers pour qu'il ait les privilèges sudo :
usermod -aG sudo zookeeper
5. Cochez pour vérifier que l'utilisateur est maintenant un superutilisateur en répertoriant les comptes dans le groupe sudoers :
sudo getent group sudo
La sortie doit afficher l'utilisateur que vous avez créé.
Étape 3 :Création d'un répertoire de données ZooKeeper
Avant d'installer ZooKeeper, créez une structure de répertoires dans laquelle il peut stocker les données de configuration et d'état (sur un disque local ou un stockage distant).
Pour stocker les données sur la machine locale, créez d'abord un nouveau répertoire ZooKeeper en exécutant :
sudo mkdir -p /data/zookeeper
Ensuite, donnez à l'utilisateur ZooKeeper la propriété de ce répertoire :
chown -R zookeeper:zookeeper /data/zookeeper
Étape 4 :Téléchargement et installation de ZooKeeper
1. Ouvrez un navigateur Web de votre choix et accédez à la page de téléchargement d'Apache ZooKeeper. La dernière version stable apparaît en haut de la page. Cliquez sur la version que vous souhaitez installer pour ouvrir les miroirs de téléchargement Apache.
2. Copiez l'adresse HTTP du site miroir suggéré.
3. Revenez à la ligne de commande et passez au /opt
répertoire :
cd /opt
4. Utilisez le wget
commande pour télécharger le .tar dossier. Collez le lien copié depuis la page Web officielle d'Apache :
sudo wget https://downloads.apache.org/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
5. Extrayez le fichier en exécutant :
sudo tar -xvf apache-zookeeper-3.6.1-bin.tar.gz
6. Renommez le fichier extrait en zookeeper
avec la commande :
mv apache-zookeeper-3.6.1-bin zookeeper
7. Donnez à l'utilisateur zookeeper la propriété de ce fichier en exécutant :
chown -R zookeeper:zookeeper /opt/zookeeper
Étape 5 :Configurer ZooKeeper en mode autonome
L'étape suivante consiste à créer un fichier de configuration pour ZooKeeper. La configuration ci-dessous configure ZooKeeper en mode autonome (utilisé pour le développement et les tests). Pour les environnements de production, vous devez exécuter ZooKeeper en mode réplication.
Pour configurer ZooKeeper en mode autonome, créez un nouveau zoo.cfg fichier dans le gardien du zoo répertoire :
sudo nano /opt/zookeeper/conf/zoo.cfg
Ajoutez les lignes suivantes :
tickTime = 2000
dataDir = /data/zookeeper
clientPort = 2181
initLimit = 5
syncLimit = 2
Enregistrer et quitter l'éditeur de texte.
Gardez à l'esprit qu'il s'agit d'un paramètre de configuration de base pour un cluster à nœud unique. Le fichier peut différer selon vos besoins. Les lignes ci-dessus sont composées des éléments suivants :
tickTime
:Le nombre de millisecondes de chaque tick.dataDir
:répertoire dans lequel les instantanés de la base de données en mémoire et du journal des transactions pour les mises à jour sont stockés.clientPort
:Le port qui écoute les connexions client.initLimit
:Le nombre de ticks que peut prendre la phase de synchronisation initiale.syncLimit
:Le nombre de ticks qui peuvent s'écouler entre l'envoi d'une demande et l'obtention d'un accusé de réception.
Étape 6 :Démarrage du service ZooKeeper
Maintenant, vous pouvez démarrer le service ZooKeeper. Exécutez la commande suivante dans /opt annuaire. Si vous êtes sorti du répertoire, naviguez dedans avec cd /opt
.
Pour démarrer le service ZooKeeper, utilisez la commande :
sudo bin/zkServer.sh start
La sortie doit afficher que ZooKeeper a STARTED .
Étape 7 :Connexion au serveur ZooKeeper
Une fois que vous avez démarré le service, vous pouvez vous connecter au serveur ZooKeeper. Dans ce guide, il s'agit du serveur local.
Connectez-vous à ZooKeeper avec la commande :
bin/zkCli.sh -server 127.0.0.1:2181
Attendez que la sortie ouvre un nouveau zk
invite, qui devrait confirmer que vous êtes CONNECTÉ .
Pour voir une liste des commandes disponibles, exécutez la commande suivante dans la nouvelle invite de commande :
help
Pour fermer la session , saisissez :
quit
Pour arrêter le service ZooKeeper , exécutez la commande :
bin/zkServer.sh stop
Étape 8 :Création d'un fichier de service système
Enfin, vous devez créer un fichier de service pour gérer ZooKeeper.
1. Créez un nouveau zookeeper.service fichier dans un éditeur de texte de votre choix :
sudo nano /etc/systemd/system/zookeeper.service
2. Collez le contenu suivant dans le fichier :
[Unit]
Description=Zookeeper Daemon
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/zookeeper
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg
ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg
TimeoutSec=30
Restart=on-failure
[Install]
WantedBy=default.target
3. Enregistrez et quittez le fichier.
4. Rechargez le service systemd en exécutant :
systemctl daemon-reload
5. Ensuite, démarrez le service ZooKeeper et activez-le pour qu'il démarre au démarrage :
systemctl start zookeeper
systemctl enable zookeeper
6. Vérifiez que le service est opérationnel avec la commande :
systemctl status zookeeper
Vous devriez voir que ZooKeeper est actif (en cours d'exécution) .
Configuration de ZooKeeper répliqué
Un environnement de production nécessite la configuration d'un cluster répliqué de nœuds ZooKeeper.
Une fois que vous avez installé Java, créé un utilisateur ZooKeeper et téléchargé le package binaire, vous devez créer un fichier de configuration. Contrairement à la configuration de base du mode autonome, le mode répliqué comprend quelques lignes supplémentaires.
Tous les serveurs d'une même application doivent avoir des copies du fichier de configuration.
Créez chaque fichier avec la commande :
sudo nano /opt/zookeeper/conf/zoo.cfg
Ensuite, collez le contenu suivant dans le fichier :
tickTime=2000
dataDir=/var/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=[server_ip]:2888:3888
server.2=[server_ip]:2888:3888
server.3=[server_ip]:2888:3888
Enregistrez et quittez le fichier. Répétez le processus sur chaque serveur du groupe.