installer kafka sur ubuntu

Comment installer Kafka sur Ubuntu 16.04

Partagez sur:

Dans ce guide, nous verrons étape par étape comment installer Kafka sur Ubuntu 16.04.

Apache Kafka est un courtier de messages distribués conçu pour gérer efficacement de gros volumes de données en temps réel.

LIRE AUSSI: Comment installer RabbitMQ sur Ubuntu 20.04 | 18.04 LTS

Contrairement aux courtiers traditionnels comme ActiveMQ et RabbitMQ, Kafka fonctionne comme un cluster d’un ou plusieurs serveurs, ce qui le rend hautement évolutif et en raison de cette nature distribuée, il a une tolérance aux pannes intégrée tout en offrant un débit plus élevé par rapport à ses homologues.

 

Étape 1: Installer Java

Kafka est écrit en Java et Scala et nécessite jre 1.7 et supérieur pour l’exécuter.

Dans cette étape, nous nous assurerons que Java est installé. Vous pouvez voir aussi notre article sur comment installer Java sur Ubuntu.

sudo apt-get update
sudo apt-get install default-jre

Étape 2: Installer Zookeeper

ZooKeeper est un service centralisé de gestion des informations de configuration, de dénomination, de synchronisation distribuée et de services de groupe.

Kafka utilise Zookeeper pour maintenir les battements cardiaques de ses nœuds, maintenir la configuration et, surtout, élire les dirigeants.

sudo apt-get install zookeeperd

Nous allons maintenant vérifier si Zookeeper est en activé et si tout va bien

telnet localhost 2181

à l’invite Telnet, nous entrerons

ruok

si tout va bien, il mettra fin à la session telnet et répondra par

imok

 

Étape 3: créer un utilisateur de service pour Kafka

 

Comme Kafka est une application réseau, la création d’un utilisateur non sudo spécifiquement pour Kafka minimise le risque si la machine doit être compromise.

sudo adduser --system --no-create-home --disabled-password --disabled-login kafka

 

Étape 4: Installer Kafka sur Ubuntu

Télécharger Kafka

cd ~
wget "http://www-eu.apache.org/dist/kafka/1.0.1/kafka_2.12-1.0.1.tgz"

Vérifiez éventuellement l’intégrité du fichier téléchargé

curl http://kafka.apache.org/KEYS | gpg --import
wget https://dist.apache.org/repos/dist/release/kafka/1.0.1/kafka_2.12-1.0.1.tgz.asc
gpg --verify kafka_2.12-1.0.1.tgz.asc kafka_2.12-1.0.1.tgz

Créer un répertoire pour extraire Kafka

sudo mkdir /opt/kafka
sudo tar -xvzf kafka_2.12-1.0.1.tgz --directory /opt/kafka --strip-components 1

Supprimez éventuellement l’archive tar Kafka et le fichier .asc

rm -rf kafka_2.12-1.0.1.tgz kafka_2.12-1.0.1.tgz.asc

Étape 5: Configuration du serveur Kafka

Kafka conserve les données sur le disque, nous allons donc créer un répertoire pour cela.

sudo mkdir /var/lib/kafka
sudo mkdir /var/lib/kafka/data

ouvrez /opt/kafka/config/server.properties dans votre éditeur préféré.

sudo nano /opt/kafka/config/server.properties

Par défaut, Kafka ne nous autorise pas à supprimer des sujets. Pour pouvoir supprimer des sujets, recherchez la ligne et modifiez-la.

delete.topic.enable = true

ensuite, nous changerons le répertoire du journal

log.dirs=/var/lib/kafka/data

Kafka supprime automatiquement les journaux les plus anciens après une période donnée ou après que les journaux atteignent une certaine taille.

Pour l’ajuster en fonction de l’heure, changez la ligne ci-dessous.

log.retention.hours=168  #other accepted keys are(log.retention.ms, log.retention.minutes) 

Ou selon la taille du disque.

log.retention.bytes=104857600

 

Étape 6: garantir l’autorisation des répertoires

Tout d’abord, nous nous assurerons que l’utilisateur Kafka que nous avons créé à la 3ème étape a l’autorisation d’accéder à tous les répertoires liés à Kafka.

sudo chown -R kafka:nogroup /opt/kafka
sudo chown -R kafka:nogroup /var/lib/kafka

 

Étape 7: Test de l’installation

Dans un terminal, démarrez un serveur kafka

sudo /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

Dans un autre terminal, créez un sujet

/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

Listez tous les sujets avec la commande ci-dessous et il imprimera testez le sujet que nous venons de créer

/opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

Commençons à publier des messages sur le sujet de test

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

Nous allons maintenant créer un abonné sur le sujet de test et écouter depuis le début du sujet.

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

Entrez un message dans le producteur

Hello world!!!

 

Vous verrez les messages apparaître sur le terminal de l’abonné.

Comme nous avions lancé Kafka dans la première étape en tant que sudo, nous devrions changer l’utilisateur des répertoires en kafka. Fondamentalement, nous aurions besoin de réexécuter l’étape 6

Étape 8: Lancement de Kafka en tant que service au démarrage

Afin de lancer Kafka en tant que service sur Ubuntu 16.04, nous allons créer un fichier unité décrivant le service.

Pour cela, nous allons créer un fichier unité dans le répertoire /etc/systemd/system

sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=High-available, distributed message broker
After=network.target
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
[Install]
WantedBy=multi-user.target

 

Vous pouvez choisir de transférer le journal vers un autre fichier afin que votre syslog soit propre. Le fichier journal deviendra lentement énorme au fil du temps, vous voudrez peut-être le couper de temps en temps. Modifiez la ligne ExecStart comme suit.

ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/server.log

Démarrez le service nouvellement créé

sudo systemctl start kafka.service

Ensuite, nous activerons le service afin qu’il démarre automatiquement au démarrage

sudo systemctl enable kafka.service

Vérifiez l’état du service en

sudo systemctl status kafka.service


Étape 9: Configuration d’un cluster à plusieurs nœuds

Bien que Kafka puisse s’exécuter sur un seul nœud, nous pouvons l’exécuter sur plusieurs nœuds pour la redondance des données et le basculement accidentel.

Pour faciliter la compréhension, supposons que le premier nœud dans lequel nous avons installé est

node-1 with ip 10.0.0.1

Et les nœuds que nous installerons ensuite sont

node-2 with ip 10.0.0.2 
node-3 with ip 10.0.0.3

Pour configurer un cluster à plusieurs nœuds, nous allons d’abord suivre les étapes 1 à 5 et à l’étape 5 avec d’autres paramètres dans

/opt/kafka/config/server.properties

Nous modifierons les paramètres suivants.

broker.id doit être unique pour chaque nœud du cluster.

for node-2 broker.id=1 
for node-3 broker.id=2

changez la valeur de zookeeper.connect pour qu’elle répertorie tous les hôtes zookeeper avec le port

zookeeper.connect=10.0.0.1:2181,10.0.0.2:2181,10.0.0.3:2181

Remarque: bien que Zookeeper ne soit pas requis sur chaque nœud, c’est une bonne pratique

Nous aurons également besoin de modifier les paramètres du gardien de zoo dans

/etc/zookeeper/conf/zoo.cfg

de mentionner tous les nœuds de Zookeeper

server.0=10.0.0.1:2888:3888 
server.1=10.0.0.2:2888:3888 
server.2=10.0.0.3:2888:3888

Redémarrez Zookeeper

sudo systemctl restart zookeeper.service

Nous pouvons maintenant suivre l’étape 6 pour terminer l’installation.

J’espère que ce guide vous a aidé avec succès à installer kafka sur Ubuntu 16.04.

Faites-moi savoir dans les commentaires si vous rencontrez des difficultés.


Partagez sur: