Come installare Apache Kafka su Rocky Linux
Su questa pagina
- Prerequisiti
- Installazione di Java OpenJDK
- Download di Apache Kafka
- Esecuzione di Kafka come servizio Systemd
- Operazioni di base utilizzando Kafka Console Producer e Consumer
- Streaming di dati con il plug-in Kafka Connect
- Conclusione
Apache Kafka è un archivio dati distribuito per l'elaborazione dei dati in streaming in tempo reale. è sviluppato da Apache Software Foundation e scritto in Java e Scala. Apache Kafka viene utilizzato per creare pipeline di dati in streaming in tempo reale e applicazioni che si adattano al flusso di dati, in particolare per applicazioni di livello aziendale e applicazioni mission-critical. È una delle piattaforme di flusso di dati più popolari utilizzate da migliaia di aziende per pipeline di dati ad alte prestazioni, analisi dei flussi e integrazione dei dati.
Apache Kafka combina messaggistica, archiviazione ed elaborazione dei flussi in un unico posto. Consenti agli utenti di configurare un flusso di dati potente e ad alte prestazioni per la raccolta, l'elaborazione e lo streaming dei dati in tempo reale. Viene utilizzato nelle moderne applicazioni distribuite con la capacità di ridimensionamento per gestire miliardi di eventi in streaming.
In questo tutorial, installeremo Apache Kafka sul server Rocky Linux e impareremo l'utilizzo di base di Kafka come broker di messaggi per lo streaming di dati tramite il plug-in Kafka.
Prerequisiti
Per seguire questo tutorial, avrai bisogno dei seguenti requisiti:
- Un server Rocky Linux: puoi utilizzare Rocky Linux v8 o v9.
- Un utente non root con privilegi sudo root.
Installazione di Java OpenJDK
Apache Kafka è un'applicazione basata su Java. Per installare Kafka, devi prima installare Java sul tuo sistema. Al momento della stesura di questo articolo, l'ultima versione di Apache Kafka richiedeva almeno Java OpenJDK v11.
Nella prima fase, installerai Java OpenJDK 11 dal repository ufficiale di Rocky Linux.
Esegui il comando dnf di seguito per installare Java OpenJDK 11 sul tuo sistema Rocky Linux.
sudo dnf install java-11-openjdk
Quando viene richiesto di confermare l'installazione, immettere y e premere INVIO per procedere.
Dopo l'installazione di Java, verificare la versione di Java utilizzando il seguente comando. Vedrai che Java OpenJDK 11 è installato sul tuo sistema Rocky Linux.
java version
Ora che Java è installato, avvierai l'installazione di Apache Kafka.
Scarica Apache Kafka
Apache Kafka fornisce più pacchetti binari per più sistemi operativi, incluso Linux/Unix. In questo passaggio, creerai un nuovo utente di sistema dedicato per Kafka, scaricherai il pacchetto binario di Kafka e configurerai l'installazione di Apache Kafka.
Esegui il seguente comando per creare un nuovo utente di sistema denominato kafka. Questo creerà un nuovo utente di sistema per Kafka con la home directory predefinita /opt/kafka, che verrà utilizzata come directory di installazione di Kafka.
sudo useradd -r -d /opt/kafka -s /usr/sbin/nologin kafka
Ora sposta la tua directory di lavoro in /opt. Quindi, scarica il pacchetto binario di Apache Kafka tramite il comando curl di seguito. Ora vedrai il file kafka.tar.gz.
cd /opt
sudo curl -fsSLo kafka.tgz https://downloads.apache.org/kafka/3.3.1/kafka_2.12-3.3.1.tgz
Estrai il file kafka.tar.gz tramite il comando tar e rinomina la directory estratta /opt/kafka.
tar -xzf kafka.tgz
sudo mv kafka_2.12-3.3.1 /opt/kafka
Quindi, cambia la proprietà della directory /opt/kafka all'utente kafka tramite il comando chmod di seguito.
sudo chown -R kafka:kafka /opt/kafka
Successivamente, crea una nuova directory dei log per Apache Kafka. Quindi, modifica la configurazione predefinita server.properties tramite l'editor nano.
sudo -u kafka mkdir -p /opt/kafka/logs
sudo -u kafka nano /opt/kafka/config/server.properties
La directory dei log di Kafka verrà utilizzata per archiviare i log di Apache Kafka ed è necessario definire la directory dei log nella configurazione di Kakfka sertver.properties.
Rimuovere il commento dall'opzione log.dirs e modificare il valore in /opt/kafka/logs.
# logs configuration for Apache Kafka
log.dirs=/opt/kafka/logs
Salva il file ed esci dall'editor quando hai finito.
Ora hai completato l'installazione e la configurazione di base di Apache Kafka. Successivamente, configurerai ed eseguirai Apache Kafka come servizio systemd.
Esecuzione di Kafka come servizio Systemd
Il pacchetto Apache Kafka include un'altra applicazione Zookeeper che viene utilizzata per centralizzare i servizi e mantenere l'elezione del controller Kafka, le configurazioni degli argomenti e gli ACL (elenchi di controllo degli accessi) per il cluster Apache Kafka.
Per eseguire Apache Kafka, devi prima eseguire Zookeeper sul tuo sistema. E in questo passaggio, creerai un nuovo file di servizio systemd sia per Zookeeper che per Apache Kafka. Entrambi i servizi funzioneranno anche con lo stesso utente kafka.
Crea un nuovo file di servizio per Zookeeper /etc/systemd/system/zookeeper.service utilizzando il seguente comando.
sudo nano /etc/systemd/system/zookeeper.service
Aggiungi la configurazione al file.
[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
Salva il file ed esci dall'editor quando hai finito.
Successivamente, crea un nuovo file di servizio per Apache Kafka /etc/systemd/system/kafka.service utilizzando il comando seguente.
sudo nano /etc/systemd/system/kafka.service
Aggiungere la seguente configurazione al file. Puoi vedere nella sezione [Unit] che il servizio Kafka richiede che zookeeper.service sia in esecuzione per primo e che sia sempre in esecuzione dopo zookeeper.service.
[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
Salva il file ed esci dall'editor quando hai finito.
Successivamente, esegui il seguente comando systemctl per ricaricare il gestore systemd e applicare nuovi servizi.
sudo systemctl daemon-reload
Ora avvia i servizi Zookeeper e Kafka usando il seguente comando.
sudo systemctl start zookeeper
sudo systemctl start kafka
Abilita l'esecuzione automatica dei servizi kafka e zookeeper all'avvio del sistema tramite il comando systemctl di seguito.
sudo systemctl enable zookeeper
sudo systemctl enable kafka
Infine, verifica sia il servizio Zookeeper che Kafka utilizzando il comando seguente.
sudo systemctl status zookeeper
sudo systemctl status kafka
Nell'output seguente, puoi vedere che lo stato corrente del servizio Zookeeper è in esecuzione ed è anche abilitato.
E sotto per lo stato del servizio kafka, che è in esecuzione e anche il servizio è abilitato.
Ora che hai terminato l'installazione di Apache Kafka ed è ora attivo e funzionante. successivamente, imparerai l'utilizzo di base di Apache Kafka come broker di messaggi per la produzione di messaggi e imparerai anche come utilizzare il plug-in Kafka per lo streaming di dati in tempo reale.
Operazioni di base utilizzando Kafka Console Producer e Consumer
Prima di iniziare, tutti i comandi che verranno utilizzati per questo esempio sono forniti dal pacchetto Kafka disponibile nella directory /opt/kafka/bin.
In questo passaggio, imparerai come creare ed elencare gli argomenti Kafka, avviare il produttore e inserire i dati, trasmettere i dati tramite lo script del consumatore e, infine, ripulire il tuo ambiente eliminando l'argomento Kafka.
Eseguire il seguente comando per creare un nuovo argomento Kafka. Utilizzerai lo script kafka-topics.sh per creare un nuovo argomento con il nome TestTopic con una replica e una partizione.
sudo -u kafka /opt/kafka/bin/kafka-topics.sh \
--create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TestTopic
Ora esegui il seguente comando per verificare l'elenco degli argomenti sul tuo Kafka. Dovresti vedere che TestTopic è stato creato sul tuo server Kafka.
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Successivamente, per produrre messaggi è possibile utilizzare lo script kafka-console-producser.sh e quindi inserire i dati che verranno elaborati.
Eseguire il comando seguente per avviare Kafka Console Producer e specificare l'argomento in TestTopic.
sudo -u kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TestTopic
Dopo aver ottenuto il Kafka Console Producer, inserisci qualsiasi messaggio che verrà elaborato.
Successivamente, apri una nuova sessione terminale e accedi al server. Quindi apri Kafka Console Consumer tramite lo script kafka-conosle-consumer.sh.
Eseguire il comando seguente per avviare kafka Console Consumer e specificare l'argomento in TestTopic.
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TestTopic --from-beginning
Nello screenshot qui sotto, puoi vedere tutti i messaggi dal produttore della console Kafka che vengono elaborati nella console del consumatore. È inoltre possibile digitare altri messaggi nel produttore della console e il messaggio verrà automaticamente proseguito e visualizzato nella schermata del consumatore della console.
Ora premi Ctrl+c per uscire sia da Kafka Console Producer che da Kafka Console Consumer.
Per ripulire il tuo ambiente Kafka, puoi eliminare e rimuovere TestTopic tramite il seguente comando.
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic TestTopic
Streaming di dati con il plug-in Kafka Connect
Apache Kafka fornisce più plug-in che possono essere utilizzati per lo streaming di dati da più fonti. Ulteriori plug-in della libreria Kafka sono disponibili per impostazione predefinita nella directory /opt/kafka/libs, è necessario abilitare i plug-in Kafka tramite il file di configurazione /opt/kafka/config/connect-standalone.properties. In questo caso, per la modalità standalone di Kafka.
Esegui il seguente comando per modificare il file di configurazione di Kafka /opt/kafka/config/connect-standalone.properties.
sudo -u kafka nano /opt/kafka/config/connect-standalone.properties
Rimuovere il commento dalla riga plugin.path e modificare il valore nella directory della libreria dei plugin /opt/kakfa/libs.
plugin.path=/opt/kafka/libs
Salva il file ed esci dall'editor quando hai finito.
Successivamente, esegui il seguente comando per creare un nuovo file /opt/kafka/test.txt che verrà utilizzato come origine dati per il flusso Kafka.
sudo -u kafka echo -e "Test message from file\nTest using Kafka connect from file" > /opt/kafka/test.txt
Ora esegui il seguente comando per avviare Kafka Consumer in modalità autonoma con i file di configurazione connect-file-source.properties e connect-file-sink.properties.
Questo comando e configurazione è un esempio predefinito del flusso di dati Kafka con il file di origine test.txt che hai appena creato. Questo esempio creerà automaticamente anche un nuovo argomento connect-test a cui puoi accedere tramite Kafka Console Consumer.
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
Ora, apri un'altra sessione di terminale ed esegui il seguente comando per avviare Kafka Console Consumer. Inoltre, specificare l'argomento da connettere-test. Vedrai il messaggio dal file test.txt.
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
Ora puoi aggiornare il file test.txt e i nuovi messaggi verranno automaticamente elaborati e trasmessi in streaming su Kafka Console Consumer.
Esegui il seguente comando per aggiornare il file test.txt con i nuovi messaggi.
sudo -u kafka echo "Another test message from file test.txt" >> test.txt
Nell'output seguente, puoi vedere che i nuovi messaggi vengono elaborati automaticamente da Kafka quando vengono apportate modifiche al file test.txt. Ora hai completato l'utilizzo di base del plug-in Kafka connect per lo streaming di messaggi tramite file.
Conclusione
In questa guida, hai imparato come installare Apache Kafka sul sistema Rocky Linux. Hai anche appreso l'utilizzo di base della Kafka Producer Console per la produzione e l'elaborazione dei messaggi e del Kafka Consumer per la ricezione dei messaggi. Alla fine, hai anche imparato come abilitare i plug-in Kafka e utilizzare il plug-in Kafka Connect per lo streaming di messaggi in tempo reale da un file.