Apache Kafka è un sistema di messaggistica scalabile e ad alta produttività che è in grado di gestire in modo efficiente un'enorme quantità di dati.
È possibile distribuire Kafka su un server o creare un cluster Kafka distribuito per prestazioni migliori. Come inizio, questo articolo spiega come installare Apache Kafka su una singola istanza del server Vultr CentOS 7.
Prerequisiti:
Prima di proseguire, dovresti:
- Distribuire un'istanza del server Vultr CentOS 7. A seconda delle esigenze, potrebbe essere necessario aumentare la memoria disponibile.
- Utilizzare un utente sudo per accedere dal proprio terminale SSH.
Passaggio 1: aggiornare il sistema CentOS 7
Utilizzare il comando seguente per aggiornare il sistema all'ultimo stato stabile:
sudo yum update -y && sudo reboot
Al termine del riavvio, utilizzare lo stesso utente sudo per accedere nuovamente.
Passaggio 2: installare OpenJDK Runtime
È necessario configurare una macchina virtuale Java sul proprio sistema prima di poter eseguire correttamente Apache Kafka. Qui, è possibile installare OpenJDK Runtime Environment 1.8.0 utilizzando YUM:
sudo yum install java-1.8.0-openjdk.x86_64
Convalida l'installazione con:
java -version
L'output dovrebbe assomigliare a:
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
È inoltre necessario impostare le variabili di ambiente "JAVA_HOME" e "JRE_HOME":
sudo vi /etc/profile
Aggiungi le seguenti righe al contenuto originale del file:
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
export JRE_HOME=/usr/lib/jvm/jre
Salva ed esci:
:wq
Ricarica il profilo per rendere effettive le modifiche:
source /etc/profile
Passaggio 3: Scarica Apache Kafka
Scarica l'ultima versione stabile di Apache Kafka dal sito ufficiale. Al momento della scrittura, lo è 0.9.0.1
.
cd ~
wget http://www-us.apache.org/dist/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
Decomprimi l'archivio in una posizione preferita, ad esempio /opt
:
tar -xvf kafka_2.11-0.9.0.1.tgz
sudo mv kafka_2.11-0.9.0.1 /opt
Passaggio 4: avviare e testare Apache Kafka
A questo punto, Apache Kafka è disponibile sul tuo sistema. Facciamo un giro di prova.
4.1: Entra nella directory di Kafka
cd /opt/kafka_2.11-0.9.0.1
4.2: avviare il server Zookeeper
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
4.3: Modifica la configurazione del tuo server Kafka
vi bin/kafka-server-start.sh
Regola l'utilizzo della memoria in base ai tuoi parametri di sistema specifici. Ad esempio, se si utilizza un'istanza del server Vultr con 768 MB di memoria nell'ambiente di test, è necessario individuare la seguente riga:
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
Sostituiscilo con:
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
Salva una chiusura:
:wq
4.4: avviare il server Kafka
bin/kafka-server-start.sh config/server.properties
Se tutto è andato a buon fine, vedrai diversi messaggi sullo stato del server Kafka e l'ultimo leggerà:
INFO [Kafka Server 0], started (kafka.server.KafkaServer)
Ciò significa che hai avviato il server Kafka.
4.5: Creare un argomento "test" in una nuova connessione SSH
Apri una nuova connessione SSH, usa i seguenti comandi per creare un argomento "test":
cd /opt/kafka_2.11-0.9.0.1
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Puoi visualizzare i tuoi argomenti con il seguente comando:
bin/kafka-topics.sh --list --zookeeper localhost:2181
Nel nostro caso, l'output leggerà:
test
4.6: Produrre messaggi usando l'argomento "test"
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
Usando il comando sopra, puoi inserire qualsiasi numero di messaggi come desideri, come ad esempio:
Welcome aboard!
Bonjour!
Se ricevi un errore simile a "WARN Error while fetching metadata with correlation id"
quando inserisci un messaggio, dovrai aggiornare il server.properties
file con le seguenti informazioni:
port = 9092
advertised.host.name = localhost
4.7: Visualizza messaggi
Aprire una terza connessione SSH, quindi eseguire i comandi seguenti:
cd /opt/kafka_2.11-0.9.0.1
bin/kafka-console-consumer.sh --zookeeper localhost:9092 --topic test --from-beginning
Ta-da! I messaggi prodotti in precedenza verranno visualizzati nella terza connessione SSH. Ovviamente, se inserisci più messaggi dalla seconda connessione SSH ora, li vedrai immediatamente sulla terza connessione SSH.
Infine, puoi premere Ctrl + C su ogni connessione SSH per interrompere questi script.
Questo è tutto. Puoi saperne di più su Apache Kafka sul sito ufficiale. Divertiti!