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.
Leave a Comment