Introduzione
Apache Kafka è una piattaforma di streaming di eventi distribuita open source sviluppata dalla Apache Software Foundation. Questo è scritto nei linguaggi di programmazione Scala e Java. Puoi installare Kafka su qualsiasi piattaforma che supporti il linguaggio di programmazione Java.
Questo tutorial fornisce istruzioni dettagliate per installare Apache Kafka sul sistema Linux Ubuntu 22.04 LTS.
Prerequisiti
Devi disporre dell'accesso con account privilegiato sudo al sistema Linux Ubuntu 22.04.
Se desideri installare Apache Kafka su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Installare Java
Possiamo eseguire il server Apache Kafka su sistemi che supportano Java. Quindi assicurati di avere Java installato sul tuo sistema Ubuntu.
Usa i seguenti comandi per installare OpenJDK sul tuo sistema Ubuntu dai repository ufficiali:
sudo apt update
sudo apt install default-jdk
Verificare la versione Java attiva corrente:
java --version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Scaricare l'ultimo Apache Kafka
Puoi scaricare gli ultimi file binari di Apache Kafka dalla sua pagina di download ufficiale. In alternativa puoi scaricare Kafka 3.2.0 con il comando seguente.
wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
Quindi estrai il file di archivio scaricato e posizionalo nella directory /usr/local/kafka:
tar xzf kafka_2.13-3.2.0.tgz
sudo mv kafka_2.13-3.2.0 /usr/local/kafka
Creare script di avvio di Systemd
Ora, crea file di unità systemd per i servizi Zookeeper e Kafka. Questo ti aiuterà ad avviare/arrestare il servizio Kafka in modo semplice.
Innanzitutto, crea un file di unità systemd per Zookeeper:
sudo nano /etc/systemd/system/zookeeper.service
E aggiungi il seguente contenuto:
[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/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Salva il file e chiudilo.
Quindi, crea un file di unità systemd per il servizio Kafka:
sudo nano /etc/systemd/system/kafka.service
Aggiungi il contenuto di seguito. Assicurati di impostare il percorso JAVA_HOME corretto secondo 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/java-11-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
Salva il file e chiudi.
Ricarica il demone systemd per applicare nuove modifiche:
sudo systemctl daemon-reload
Questo ricaricherà tutti i file systemd nell'ambiente di sistema.
Avviare Zookeeper e i servizi Kafka
Iniziamo entrambi i servizi uno per uno. Innanzitutto, devi avviare il servizio ZooKeeper e quindi avviare Kafka. Utilizzare il comando systemctl per avviare un'istanza ZooKeeper a nodo singolo.
sudo systemctl start zookeeper
sudo systemctl start kafka
Verifica entrambi gli stati dei servizi:
sudo systemctl status zookeeper
sudo systemctl status kafka
Questo è tutto. Hai installato con successo il server Apache Kafka sul sistema Ubuntu 22.04. Successivamente, creeremo argomenti nel server Kafka.
Creare un argomento in Kafka
Kafka fornisce più script di shell predefiniti per lavorarci. Innanzitutto, crea un argomento denominato "testTopic" con una singola partizione con un'unica replica:
cd /usr/local/kafka
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testTopic
Created topic testTopic.
Qui:
- Usa l'opzione
--create
per creare un nuovo argomento - L'opzione
--replication-factor
descrive quante copie di dati verranno create. Poiché stiamo eseguendo con una singola istanza, mantieni questo valore 1. - Imposta le opzioni
--partitions
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. - L'opzione
--topic
definisce il nome dell'argomento
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 --bootstrap-server localhost:9092
In alternativa, invece di creare argomenti manualmente, puoi anche configurare i tuoi broker per creare automaticamente argomenti quando viene pubblicato un argomento inesistente.
Inviare e ricevere messaggi in 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
>
È possibile uscire da questo comando o mantenere in esecuzione questo terminale per ulteriori test. Ora apri un nuovo terminale per il processo del consumatore Kafka nel passaggio successivo.
Kafka ha anche un consumer della riga di comando per leggere i dati dal cluster Kafka e visualizzare i messaggi sull'output standard.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning
Welcome to kafka
This is my first topic
Ora, se hai ancora in esecuzione il produttore Kafka in un altro terminale. 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
Questo tutorial ti ha aiutato a installare e configurare il server Apache Kafka su un sistema Linux Ubuntu 22.04. Inoltre, hai imparato a creare un nuovo argomento nel server Kafka ed eseguire un processo di produzione e consumo di esempio con Apache Kafka.