Installation d’un ensemble Zookeeper

Lors de l’installation d’un Cluster Solrcloud, il est nécessaire de disposer d’un ensemble Zookeeper opérationnel. On appelle ensemble, un groupe de serveurs qui fonctionnent de concert (« ensemble » donc).
Le but est de fournir un service hautement disponible ou l’arrêt pour panne ou maintenance d’un des serveurs de l’ensemble ne perturbe pas le service.
Le principe de base pour qu’un ensemble fonctionne est que la moitié plus un des serveurs qui le constitue soient disponibles, c’est ce l’on appelle avoir le quorum. Un ensemble de 3 serveurs permet donc l’indisponibilité de 1 serveur, un ensemble de 5 serveurs permet l’indisponibilité de 2 serveurs et ainsi de suite. Une configuration à 3 serveurs est suffisante dans la plupart des cas.

Installation de Zookeeper

Il s’agit d’une procédure d’installation simplifiée.

En pré-requis, il faut disposer de Java 1.7 ou 1.8 et récupérer une distribution Zookeeper 3.4.6.

Cette opération est a répéter sur chaque serveur de l’ensemble.

  • on désarchive la distribution dans /opt/zookeeper-3.x.x
  • on créer un lien symbolique générique “/opt/zookeeper” indépendant de la version et un répertoire de données à l’extérieur du répertoire d’installation. Les mise à jours seront plus faciles.
  • créer le fichier de configuration “/opt/zookeeper/conf/zoo.cfg” avec le contenu suivant
zkhost1, zkhost2, … sont a remplacer par les noms effectifs des serveurs

  • Créer le fichiers myid dans le répertoire data. Ce fichier ne contient uniquement une ligne qui est le numéro de l’instance Zookeeper qui utilise ce répertoire de données (un chiffre de 1 à 255).
L’id 1 est à remplacer par 2, 3, … n sur chacun des serveurs

Démarrer chaque serveur de l’ensemble

Paramètres complémentaires

Si des paramètres complémentaires doivent être passés à la JVM, il faut créer un fichier “java.env” dans “/opt/zookeeper/conf”

Par exemple, si des fichiers de configurations de plus de 1Mo sont présents dans les configurations Solr (des fichiers de synonymies par exemple, il faut positionner la variable “-Djute.maxbuffer=xxxxxxx”;

y placer :

Puis, mettre les droits d’exécution :

Note : Dans le cadre d’une utilisation avec Solr, les noeuds Solr doivent également être démarrés avec cette option.

Script de démarrage

Afin que Zookeeper démarre automatiquement au boot du serveur, il faut placer un script dans le répertoire « /etc/init.d ».

Mettre en place le script de démarrage sous le nom “/etc/init.d/zookeeper”
Le script est disponible ici : https://gist.github.com/bejean/b9ff72c6d2143e16e35d

Mettre en démarrage automatique

Sous CENTOS :

Sous DEBIAN :

Log

Voici la configuration que je conseille pour l’écriture des logs rotatifs dans /var/log/zookeeper

Editer “/opt/zookeeper/bin/zkEnv.sh” et ajouter au début :

Créer un répertoire pour les logs :
Renommer le fichier de configuration par défaut des logs.
Placer ce fichier “log4j.properties” suivant dans le répertoire conf de ZK

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *