Apache Kafka est une plateforme de streaming distribuée. Il est utile pour créer des pipelines de données en continu en temps réel afin d'obtenir des données entre les systèmes ou les applications. Une autre fonctionnalité utile est les applications de streaming en temps réel qui peuvent transformer des flux de données ou réagir sur un flux de données.
Ce tutoriel vous aidera à installer les systèmes Apache Kafka CentOS 8 ou RHEL 8 Linux.
Prérequis
- Il est recommandé que le système nouvellement installé suive la configuration initiale du serveur.
- Accès shell au système CentOS 8 avec un compte de privilèges sudo.
Étape 1 – Installer Java
Java doit être installé sur votre système pour exécuter Apache Kafka. Vous pouvez installer OpenJDK sur votre machine en exécutant la commande suivante. Installez également d'autres outils requis.
sudo dnf install java-11-openjdk wget vim
Étape 2 – Télécharger Apache Kafka
Téléchargez les fichiers binaires Apache Kafka à partir de son site Web de téléchargement officiel. Vous pouvez également sélectionner n'importe quel miroir à proximité pour le télécharger.
wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
Ensuite, extrayez le fichier d'archive
tar xzf kafka_2.13-2.7.0.tgz mv kafka_2.13-2.7.0 /usr/local/kafka
Étape 3 - Configurer les fichiers d'unité Kafka Systemd
CentOS 8 utilise systemd pour gérer l'état de ses services. Nous devons donc créer des fichiers unitaires systemd pour le service Zookeeper et Kafka. Ce qui nous aide à gérer les services Kafka pour démarrer/arrêter.
Tout d'abord, créez un fichier d'unité systemd pour Zookeeper avec la commande ci-dessous :
vim /etc/systemd/system/zookeeper.service
Ajoutez le contenu ci-dessous :
[Unit] Description=Apache Zookeeper server Documentation=http://zookeeper.apache.org Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple ExecStart=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Enregistrez le fichier et fermez-le.
Ensuite, pour créer un fichier d'unité Kafka systemd à l'aide de la commande suivante :
vim /etc/systemd/system/kafka.service
Ajoutez le contenu ci-dessous. Assurez-vous de définir le bon JAVA_HOME chemin selon Java installé sur votre système.
[Unit] Description=Apache Kafka Server Documentation=http://kafka.apache.org/documentation.html Requires=zookeeper.service [Service] Type=simple Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk" ExecStart=/usr/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBy=multi-user.target
Enregistrez le fichier et fermez-le.
Rechargez le démon systemd pour appliquer les modifications.
systemctl daemon-reload
Étape 4 - Démarrer le serveur Kafka
Kafka a requis ZooKeeper, donc commencez par démarrer un serveur ZooKeeper sur votre système. Vous pouvez utiliser le script disponible avec Kafka pour démarrer une instance ZooKeeper à nœud unique.
sudo systemctl start zookeeper
Démarrez maintenant le serveur Kafka et affichez l'état d'exécution :
sudo systemctl start kafka sudo systemctl status kafka
Terminé. Vous avez installé avec succès Kafka sur votre CentOS 8. La prochaine partie de ce didacticiel vous aidera à créer des sujets dans le cluster Kafka et à travailler avec le service producteur et consommateur de Kafka.
Étape 5 – Créer des sujets dans Apache Kafka
Apache Kafka fournit plusieurs scripts shell pour travailler dessus. Tout d'abord, créez un sujet nommé "testTopic ” avec une seule partition avec un seul réplica :
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic testTopic.
Le facteur de réplication décrit le nombre de copies de données qui seront créées. Comme nous fonctionnons avec une seule instance, gardez cette valeur 1.
Définissez les options de partitions en fonction du nombre de courtiers entre lesquels vous souhaitez que vos données soient réparties. Comme nous fonctionnons avec un seul courtier, gardez cette valeur 1.
Vous pouvez créer plusieurs sujets en exécutant la même commande que ci-dessus. Après cela, vous pouvez voir les sujets créés sur Kafka en exécutant la commande ci-dessous :
bin/kafka-topics.sh --list --zookeeper localhost:2181 testTopic KafkaonCentOS8 TutorialKafkaInstallCentOS8
Alternativement, au lieu de créer manuellement des sujets, vous pouvez également configurer vos courtiers pour qu'ils créent automatiquement des sujets lorsqu'un sujet inexistant est publié.
Étape 6 :Producteur et consommateur d'Apache Kafka
Le « producteur » est le processus chargé de mettre les données dans notre Kafka. Le Kafka est livré avec un client de ligne de commande qui prendra l'entrée d'un fichier ou d'une entrée standard et l'enverra sous forme de messages au cluster Kafka. Le Kafka par défaut envoie chaque ligne dans un message séparé.
Lançons le producteur, puis tapons quelques messages dans la console à envoyer au serveur.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
Ouvrez maintenant un nouveau terminal pour exécuter le processus consommateur Apache Kafka. Kafka fournit également un consommateur de ligne de commande pour lire les données du cluster Kafka et afficher les messages sur la sortie standard.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is my first topic
L'option –from-beginning est utilisée pour lire les messages depuis le début du sujet sélectionné. Vous pouvez ignorer cette option pour lire uniquement les derniers messages.
Par exemple, Exécutez le producteur Kafka et le consommateur dans les terminaux séparés. Tapez simplement du texte sur ce terminal de producteur. il sera immédiatement visible sur le terminal du consommateur. Voir la capture d'écran ci-dessous du producteur et du consommateur de Kafka en fonctionnement :
Conclusion
Vous avez installé et configuré avec succès le service Kafka sur la machine Linux CentOS 8.