Come installare Apache Kafka su Ubuntu 18.X. Messaggiamoci !

Apache Kafka

Apache Kafka è una piattaforma open source di stream processing scritta in Java e Scala e sviluppata dall’Apache Software Foundation. Il progetto mira a creare una piattaforma a bassa latenza ed alta velocità per la gestione di feed dati in tempo reale.

Il progetto mira a fornire una piattaforma unificata, ad alto rendimento e a bassa latenza per la gestione dei flussi di dati in tempo reale. Il suo livello di storage è essenzialmente una “coda di messaggi pub/sub progettato come un registro distribuito delle transazioni”, il che rende estremamente prezioso per le infrastrutture aziendali per l’elaborazione dei dati in streaming. Inoltre, Kafka si collega a sistemi esterni (per l’importazione/esportazione dei dati) tramite Kafka Connect e fornisce Kafka Streams, una libreria di elaborazione dei flussi Java.

Apache Kafka
Apache Kafka



Installiamolo

Creiamo un nuovo utente chiamato ‘kafka’, dopo di che aggiungeremo questo nuovo utente come sudoer.

# sudo adduser kafka

# sudo usermod -aG sudo kafka

Kafka è scritto in Java, quindi è necessaria una JVM per farlo funzionare.

# sudo apt install default-jre

Ora scarichiamo Kafka, potete vedere qui quale è l’ultima versione.

su – kafka
wget https://www-us.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.2.0.0.tgz -O kafka.tgz

Ora che il binario di Apache Kafka è stato scaricato, dobbiamo estrarlo nella nostra directory utente kafka.

tar -xzvf kafka.tgz –stripe 1

Iniziamo la configurazione

Per impostazione predefinita, non siamo autorizzati a cancellare argomenti, categorie o gruppi in cui i messaggi possono essere inviati. Per cambiare questo comportamento, dobbiamo modificare la configurazione predefinita.

nano ~/config/server.properties

Aggiungere la riga seguente all’ultima riga del file di configurazione.

delete.topic.enable = true

Bisogna creare un System Unit File per Apache Kafka

Zookeeper è necessario per gestire Kafka. Kafka usa zookeeper, quindi dovremo prima avviare un’istanza del server Zookeeper prima di avviare il servizio Apache Kafka. Usiamo lo script di aiuto fornito con Kafka per ottenere un’istanza di Zookeeper a nodo singolo.

Apri un nuovo file nel file filepath

/etc/systemd/systemd/system/zookeeper.service, e aprilo con tuo editor di testo preferito. Io uso sempre nanao.

sudo nano /etc/systemd/systemd/system/zookeeper.service

Incollare le seguenti righe:

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties

ExecStop=/home/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target

Ora, creiamo un file di system unit per kafka al filepath /etc/systemd/systemd/system/kafka.service:

$ sudo nano /etc/systemd/systemd/system/kafka.service

e inseriamoci questo

[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c ‘/home/kafka/bin/kafka-server-start.sh /home/kafka/config/server.properties > /home/kafka/kafka.log 2>&1’
ExecStop=/home/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target



Rendiamo Autopartente

Le nuove system units sono state aggiunte, quindi abilitiamo Apache Kafka ad avviarsi automaticamente all’avvio, e quindi ad eseguire il servizio.

$ sudo systemctl enable kafka
$ sudo systemctl start kafka

Creiamo un Topic

Siamo al nostro primo argomento. Creiamolo.

Creiamo un argomento chiamato “ComputerhelpFirstTopic”, con una sola partizione e una sola replica:

$ bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic ComputerhelpFirstTopic

e avremo come risposta

Created topic “FirstTopic”. 🙂

Il valore del fattore di replica ( replication-factor) descrive quante copie di dati verranno create. Siamo in esecuzione con una singola istanza, quindi il valore è 1.

Il valore delle partizioni (partitions) descrive il numero di broker tra i quali si vogliono suddividere i dati. Stiamo correndo con un singolo broker, quindi il valore è 1.

Ora puoi vedere l’argomento creato su Kafka eseguendo il comando per l’elenco degli argomenti:

$ bin/kafka-topics.sh –list –zookeeper localhost:2181

ComputerhelpFirstTopic

Inviare messaggi utilizzando Apache Kafka

Apache Kafka viene fornito con un client a riga di comando che prende l’input da un file o input standard e lo invia come messaggi al cluster Kafka. Il ” producer” è il processo che ha la responsabilità di inserire i dati nel nostro servizio Kafka. Per impostazione predefinita, Kafka invia ogni riga come messaggio separato.

Eseguiamo il producer e poi digitiamo alcuni messaggi nella console da inviare al server.

$ bin/kafka-console-producer.sh –broker-list localhost:9092 –topic ComputerhelpFirstTopic

>Benvenuti da Aiutocomputerhelp con kafka
>Linux è l’aergomento del nostro primo topic
>viva il software libero !

Utilizzare Apache Kafka come utente

Apache Kafka ha anche una linea di comando per il consumatore per leggere i dati da Kafka per visualizzare i messaggi in un output standard.

$ bin/kafka-console-consumer.sh –bootstrap-server localhost:9092 –topic testTopic –f from-beginning

Benvenuti da Aiutocomputerhelp con kafka
Linux è l’aergomento del nostro primo topic
viva il software libero !

E’ di una potenza e scalabilità unica. E’ bene sapere che esiste, potrebbe tornarci utile!