Installazione di Apache Kafka su CentOS 7
In questo tutorial andremo a descrivere come installare Apache Kafka su ambiente CentOS 7.
Consideriamo di partire da una macchina virtuale preinstallata CentOS 7 ( qui l’articolo dell’installazione) ed aggiorniamola
yum update
Apache Kafka è una piattaforma open source scritta in Java e Scala, che permette in maniera ottimale e distribuita lo scambio di messaggi, con la particolarità rispetto ad altri sistemi nel mercato di gestire grandi flussi di dati scalando facilmente ed in maniera veloce.
Prerequisito fondamentale per il funzionamento del software Apache Kafka è l’installazione della JVM (Java virtual Machine)
yum list | grep jdk
scegliamo la versione 8 di Java
yum install java-1.8.0-openjdk
scarichiamo al sito ufficiale l’ultima versione di Apache Kafka ( al momento della redazione di questo articolo 2.1.0 )
yum install vim wget
cd
wget http://apache.panu.it/kafka/2.1.0/kafka_2.11-2.1.0.tgz
estraiamo il file compresso
tar -xvzf kafka_2.11-2.1.0.tgz
posizioniamo il tutto sotto il filesystem opt ( a scelta )
mv kafka_2.11-2.1.0 kafka
mv kafka/ /opt/
E’ possibile impostare anche la dimensione della RAM da fornire alla JVM
vim /opt/kafka/bin/kafka-server-start.sh
export KAFKA_HEAP_OPTS=”-Xmx1G -Xms1G”
il software Apache Kafka tra gli eseguibili presenti nella cartella binha il componente Apache Zookeeper, utile per gestire le configurazioni o possibili configurazioni in cluster, dal file di configurazione possiamo impostare la dimensione della RAM
vim /opt/kafka/bin/zookeeper-server-start.sh
export KAFKA_HEAP_OPTS=”-Xmx512M -Xms512M”
Per l’esecuzione e lo spegnimento di Zookeeper e Kafka in maniera automatica all’avvio è necessario creare dei servizi su systemd
vim /etc/systemd/system/zookeeper.service
[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
vim /etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal[Install]
WantedBy=multi-user.target
Per l’esecuzione di Apache Kafka e Apache Zookeeper, scegliamo di aggiungere un utente nello specifico kafka anzicchè root
useradd kafka
password kafka
impostiamo i permessi sulla cartella Apache Kafka in modo da far eseguire il software all’utente kafka
chown -R kafka:kafka /opt/kafka/
Abilitiamo all’avvio l’esecuzione dei due componenti
systemctl enable kafka
systemctl enable zookeeper
Per verificare il funzionamento dei componenti e troubleshooting, grazie alla libreria log4j è possibile avere granularità nella scelta dei log
vim /opt/kafka/config/log4j.properties
di default è possibile trovarli al percorso
cd /opt/kafka/log