Apache Kafka est un système de gestion de flux de données distribué largement utilisé pour le traitement de données en continu en temps réel. Dans ce guide, nous vous montrerons comment installer Apache Kafka sur un serveur Ubuntu 22.04.
Installation de Java OpenJDK
Avant d’installer Apache Kafka, nous devons installer Java OpenJDK sur notre système Ubuntu. Apache Kafka est écrit en Scala et Java, et au moment de la rédaction de cet article, il nécessite au moins Java OpenJDK version 11.
Pour installer Java OpenJDK 11, ouvrez un terminal et exécutez les commandes suivantes :
sudo apt update sudo apt installdefault-jdk
Une fois l’installation terminée, vérifiez que Java est correctement installé en exécutant la commande suivante :
java -version
Vous devriez voir la version Java OpenJDK 11 installée sur votre système.
Installation d’Apache Kafka
Maintenant que nous avons Java OpenJDK installé, procédons à l’installation d’Apache Kafka. Nous l’installerons manuellement en utilisant le package binaire.
- Créez un nouvel utilisateur système nommé “kafka” avec la commande suivante :
sudo useradd -r -d /opt/kafka -s /usr/sbin/nologin kafka
- Téléchargez le package binaire Apache Kafka en utilisant la commande suivante :
sudo curl -fsSLo kafka.tgz https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
- Extrayez le package téléchargé et déplacez-le dans le répertoire “/opt/kafka” :
tar -xzf kafka.tgz sudo mv kafka_2.13-3.2.0 /opt/kafka
- Changez la propriété du répertoire d’installation de Kafka pour l’utilisateur “kafka” :
sudo chown -R kafka:kafka /opt/kafka
- Créez un répertoire de logs pour Kafka et modifiez le fichier de configuration de Kafka :
sudo -u kafka mkdir -p /opt/kafka/logs sudo -u kafka nano /opt/kafka/config/server.properties
Dans le fichier de configuration, changez l’emplacement par défaut des logs de Kafka en “/opt/kafka/logs” :
log.dirs=/opt/kafka/logs
Sauvegardez et fermez le fichier.
Configuration d’Apache Kafka en tant que service
Maintenant qu’Apache Kafka est installé, nous allons le configurer en tant que service systemd. Cela nous permettra de démarrer, arrêter et redémarrer Kafka en utilisant la commande systemctl.
Pour configurer Kafka en tant que service, nous devons d’abord configurer le service ZooKeeper. ZooKeeper est utilisé par Kafka pour maintenir l’élection du contrôleur, les configurations des sujets, les listes de contrôle d’accès (ACL) et l’adhésion aux clusters Kafka.
- Créez un nouveau fichier de service systemd pour ZooKeeper :
sudo nano /etc/systemd/system/zookeeper.service
Ajoutez la configuration suivante au fichier :
[Unit] Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple User=kafka ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Sauvegardez et fermez le fichier.
- Créez un nouveau fichier de service pour Apache Kafka :
sudo nano /etc/systemd/system/kafka.service
Ajoutez la configuration suivante au fichier :
[Unit] Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=kafka ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/logs/start-kafka.log 2>&1' ExecStop=/opt/kafka/bin/kafka-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Sauvegardez et fermez le fichier.
- Rechargez le gestionnaire systemd pour appliquer les nouveaux services :
sudo systemctl daemon-reload
- Démarrez et activez le service ZooKeeper :
sudo systemctl enable zookeeper sudo systemctl start zookeeper
- Démarrez et activez le service Apache Kafka :
sudo systemctl enable kafka sudo systemctl start kafka
- Vérifiez l’état des services ZooKeeper et Apache Kafka :
sudo systemctl status zookeeper sudo systemctl status kafka
Vous devriez voir que les deux services sont activés et en cours d’exécution.
Opérations de base d’Apache Kafka
Maintenant qu’Apache Kafka est installé et en cours d’exécution, explorons quelques-unes des opérations de base que vous pouvez effectuer avec Kafka.
Création d’un sujet Kafka
Pour créer un nouveau sujet Kafka, utilisez le script kafka-topics.sh. Ce script vous permet de créer, de lister et de supprimer des sujets.
Ouvrez un terminal et exécutez la commande suivante pour créer un nouveau sujet nommé “TestTopic” avec 1 réplica et 1 partition :
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TestTopic
Vous devriez voir la sortie “Created topic TestTopic” indiquant que le sujet a été créé avec succès.
Vérification des sujets
Pour vérifier la liste des sujets disponibles sur votre serveur Kafka, exécutez la commande suivante :
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Vous devriez voir le “TestTopic” répertorié parmi les sujets disponibles.
Producteur et consommateur de la console Kafka
Le producteur et le consommateur de la console Kafka sont des utilitaires en ligne de commande qui vous permettent d’écrire et de diffuser des données vers et depuis des sujets Kafka.
Pour démarrer le producteur de la console Kafka, utilisez la commande suivante :
sudo -u kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TestTopic
Cela ouvrira une nouvelle coquille où vous pourrez taper des messages à envoyer au sujet “TestTopic”.
Pour démarrer le consommateur de la console Kafka, ouvrez un autre terminal et exécutez la commande suivante :
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TestTopic --from-beginning
Cela commencera à diffuser des messages depuis le sujet “TestTopic” et à les afficher dans le terminal.
Vous pouvez maintenant taper des messages dans la coquille du producteur de la console Kafka, et ils apparaîtront automatiquement dans la coquille du consommateur de la console Kafka.
Pour arrêter le producteur et le consommateur de la console Kafka, appuyez sur “Ctrl + C”.
Suppression d’un sujet Kafka
Si vous souhaitez supprimer un sujet Kafka, vous pouvez utiliser le script kafka-topics.sh.
Exécutez la commande suivante pour supprimer le sujet “TestTopic” :
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic TestTopic
Le “TestTopic” sera supprimé de votre serveur Kafka.
Importer/Exporter vos données en tant que flux en utilisant le plugin Kafka Connect
Kafka Connect est un plugin disponible dans Apache Kafka qui vous permet d’importer et d’exporter des flux de données de diverses sources vers Kafka.
- Modifiez le fichier de configuration de Kafka Connect :
sudo -u kafka nano /opt/kafka/config/connect-standalone.properties
Ajoutez la configuration suivante pour activer le plugin Kafka Connect :
plugin.path=libs/connect-file-3.2.0.jar
Sauvegardez et fermez le fichier.
- Créez un fichier d’exemple à importer et à diffuser vers Kafka :
sudo -u kafka echo -e "Test message from filenTest using Kafka connect from file" > /opt/kafka/test.txt
- Démarrez Kafka Connect en mode autonome :
cd /opt/kafka sudo -u kafka /opt/kafka/bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
Cela démarrera le plugin Kafka Connect et diffusera les données du fichier “test.txt” vers le sujet Kafka spécifié dans les fichiers de configuration.
- Ouvrez un autre terminal et démarrez le consommateur de la console Kafka pour voir les données diffusées :
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
Vous verrez maintenant les données du fichier “test.txt” diffusées vers le consommateur de la console Kafka.
Pour plus d’informations sur Apache Kafka et comment il peut bénéficier à votre entreprise, visitez Shape.host. Shape.host fournit des solutions fiables et évolutives de Cloud VPS, y compris l’hébergement cloud pour Apache Kafka.