Apache Kafka è una piattaforma di streaming distribuita. È utile per creare pipeline di dati in streaming in tempo reale per ottenere dati tra i sistemi o le applicazioni. Un'altra caratteristica utile sono le applicazioni di streaming in tempo reale che possono trasformare flussi di dati o reagire su un flusso di dati.
Questo tutorial ti aiuterà a installare i sistemi Linux Apache Kafka CentOS 8 o RHEL 8.
Prerequisiti
- Si consiglia al sistema appena installato di seguire la configurazione iniziale del server.
- Accesso shell al sistema CentOS 8 con account privilegi sudo.
Fase 1 – Installa Java
Devi avere Java installato sul tuo sistema per eseguire Apache Kafka. Puoi installare OpenJDK sulla tua macchina eseguendo il comando seguente. Inoltre, installa altri strumenti richiesti.
sudo dnf install java-11-openjdk wget vim
Fase 2:scarica Apache Kafka
Scarica i file binari di Apache Kafka dal suo sito Web di download ufficiale. Puoi anche selezionare qualsiasi mirror nelle vicinanze da scaricare.
wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
Quindi estrai il file di archivio
tar xzf kafka_2.13-2.7.0.tgz mv kafka_2.13-2.7.0 /usr/local/kafka
Passaggio 3:installazione dei file di unità di sistema Kafka
CentOS 8 usa systemd per gestire lo stato dei suoi servizi. Quindi abbiamo bisogno di creare file di unità systemd per il servizio Zookeeper e Kafka. Il che ci aiuta a gestire i servizi Kafka per avviare/arrestare.
Innanzitutto, crea il file dell'unità systemd per Zookeeper con il comando seguente:
vim /etc/systemd/system/zookeeper.service
Aggiungi sotto contnet:
[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
Salva il file e chiudilo.
Quindi, per creare un file di unità di sistema Kafka utilizzando il comando seguente:
vim /etc/systemd/system/kafka.service
Aggiungi il contenuto di seguito. Assicurati di impostare il corretto JAVA_HOME percorso come da Java installato sul tuo sistema.
[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
Salva il file e chiudilo.
Ricarica il demone systemd per applicare le modifiche.
systemctl daemon-reload
Fase 4:avvia Kafka Server
Kafka ha richiesto ZooKeeper, quindi prima avvia un server ZooKeeper sul tuo sistema. Puoi utilizzare lo script disponibile con Kafka per avviare un'istanza ZooKeeper a nodo singolo.
sudo systemctl start zookeeper
Ora avvia il server Kafka e visualizza lo stato di esecuzione:
sudo systemctl start kafka sudo systemctl status kafka
Tutto fatto. Hai installato correttamente Kafka sul tuo CentOS 8. La parte successiva di questo tutorial ti aiuterà a creare argomenti nel cluster Kafka e a lavorare con il produttore Kafka e il servizio consumer.
Fase 5 – Creazione di argomenti in Apache Kafka
Apache Kafka fornisce più script di shell per lavorarci. Innanzitutto, crea un argomento denominato "testTopic ” con un'unica partizione con un'unica replica:
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic testTopic.
Il fattore di replica descrive quante copie di dati verranno create. Poiché stiamo eseguendo con una singola istanza, mantieni questo valore 1.
Imposta le opzioni delle partizioni come il numero di broker tra i quali desideri che i tuoi dati vengano suddivisi. Poiché stiamo correndo con un unico broker, mantieni questo valore 1.
Puoi creare più argomenti eseguendo lo stesso comando di cui sopra. Successivamente, puoi vedere gli argomenti creati su Kafka eseguendo il comando seguente:
bin/kafka-topics.sh --list --zookeeper localhost:2181 testTopic KafkaonCentOS8 TutorialKafkaInstallCentOS8
In alternativa, invece di creare argomenti manualmente, puoi anche configurare i tuoi broker per creare automaticamente argomenti quando viene pubblicato un argomento inesistente.
Fase 6:produttore e consumatore di Apache Kafka
Il "produttore" è il processo responsabile dell'inserimento dei dati nel nostro Kafka. Kafka viene fornito con un client della riga di comando che prenderà l'input da un file o dallo standard input e lo invierà come messaggi al cluster Kafka. Il Kafka predefinito invia ogni riga come messaggio separato.
Eseguiamo il produttore e quindi digitiamo alcuni messaggi nella console da inviare al server.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
Ora apri un nuovo terminale per eseguire il processo consumer di Apache Kafka. Kafka fornisce anche un consumer della riga di comando per leggere i dati dal cluster Kafka e visualizzare i messaggi nello standard output.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is my first topic
L'opzione –from-beginning viene utilizzata per leggere i messaggi dall'inizio dell'argomento selezionato. Puoi saltare questa opzione per leggere solo gli ultimi messaggi.
Ad esempio, esegui il produttore e il consumatore Kafka nei terminali separati. Basta digitare del testo su quel terminale del produttore. sarà immediatamente visibile sul terminale del consumatore. Guarda lo screenshot qui sotto del produttore e consumatore Kafka al lavoro:
Conclusione
Hai installato e configurato correttamente il servizio Kafka sulla macchina Linux CentOS 8.