Déploiement de Kafka sur CentOS avec configuration de ZooKeeper

Installation et configuration de ZooKeeper

Pour exécuter Kafka, une instance de ZooKeeper est nécessaire, car Kafka s'appuie sur ce service pour la gestion des métadonnées du cluster. Voici les étapes à suivre pour installer ZooKeeper sur un système CentOS.

Téléchargement et extraction

Commencez par télécharger une version stable de ZooKeeper depuis un miroir Apache :

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

Extrayez l'archive dans le répertoire courant :

tar -zxvf zookeeper-3.4.14.tar.gz
mv zookeeper-3.4.14 /usr/local/

Configuration initiale

Copiez le fichier de configuration par défaut :

cd /usr/local/zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg

Créez un répertoire dédié au stockage des données :

mkdir /usr/local/zookeeper-3.4.14/data

Modifiez le fichier zoo.cfg pour y inclure le chemin du répertoire de données :

dataDir=/usr/local/zookeeper-3.4.14/data

Lancement du service

Démarrez ZooKeeper à l’aide du script fourni :

/usr/local/zookeeper-3.4.14/bin/zkServer.sh start

Vérifiez son statut :

/usr/local/zookeeper-3.4.14/bin/zkServer.sh status

Le mode standalone indique que ZooKeeper fonctionne en mode autonome. Le port par défaut utilisé est le 2181.

Installation de Kafka

Kafka nécessite d’abord que ZooKeeper soit opérationnel. Procédez ensuite à l’installation du broker Kafka.

Téléchargement et déploiement

Téléchargez la distribution binaire de Kafka :

wget https://archive.apache.org/dist/kafka/2.2.2/kafka_2.11-2.2.2.tgz
tar -zxvf kafka_2.11-2.2.2.tgz
mv kafka_2.11-2.2.2 /usr/local/

Configuration du serveur Kafka

Accédez au répertoire de configuration et modifiez le fichier server.properties :

vim /usr/local/kafka_2.11-2.2.2/config/server.properties

Assurez-vous que la ligne suivante est correctement définie pour spécifier l'emplacement des logs :

log.dirs=/usr/local/kafka_2.11-2.2.2/kafka-logs

Démarrage du broker Kafka

Avant de démarrer Kafka, vérifiez que ZooKeeper est actif. Ensuite, lancez le serveur Kafka :

/usr/local/kafka_2.11-2.2.2/bin/kafka-server-start.sh config/server.properties

En cas de succès, vous verrez des messages indiquant que KafkaServer a démarré correctement. Le processus écoute par défaut sur le port 9092.

Vérification du déploiement

Utilisez la commande jps pour confirmer que les deux processus sont en cours d’exécution :

jps

Vous devriez observer les processus QuorumPeerMain (ZooKeeper) et Kafka.

Vérifiez également l’écoute réseau :

netstat -tulnp | grep 9092

Gestion des topics

Créez un topic nommé demo avec une seule partition et un facteur de réplication unitaire :

/usr/local/kafka_2.11-2.2.2/bin/kafka-topics.sh --create --topic demo --partitions 1 --replication-factor 1 --zookeeper localhost:2181

Listez les topics existants :

/usr/local/kafka_2.11-2.2.2/bin/kafka-topics.sh --list --zookeeper localhost:2181

Affichez les détails d’un topic spécifique :

/usr/local/kafka_2.11-2.2.2/bin/kafka-topics.sh --describe --topic demo --zookeeper localhost:2181

Production et consommation de messages

Ouvrez un terminal pour lancer un producteur en ligne de commande :

/usr/local/kafka_2.11-2.2.2/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic demo

Saisissez quelques messages comme Hello Kafka.

Dans un autre terminal, démarez un consommateur :

/usr/local/kafka_2.11-2.2.2/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic demo --from-beginning

Les messages envoyés par le producteur apparaîtront immédiatement dans la console du consommateur.

Arrêt des services

Pour arrêter proprement Kafka :

/usr/local/kafka_2.11-2.2.2/bin/kafka-server-stop.sh config/server.properties

Et pour arrêter ZooKeeper :

/usr/local/zookeeper-3.4.14/bin/zkServer.sh stop

Suppression d’un topic

Pour supprimer un topic, utilisez la commande suivante :

/usr/local/kafka_2.11-2.2.2/bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic demo

Notez que cette opération nécessite que l’option delete.topic.enable=true soit activée dans server.properties, faute de quoi la suppression sera seulement marquée sans effet réel.

Étiquettes: Kafka ZooKeeper CentOS streaming messaging

Publié le 4 octobre à 00h55