Cómo instalar Apache Kafka en CentOS
Apache Kafka es una plataforma de transmisión distribuida desarrollada por Apache Software Foundation y escrita en Java y Scala. LinkedIn desarrolló originalmente Apache Kafka.
Apache Kafka se utiliza para crear una canalización de datos de transmisión en tiempo real que obtiene datos de manera confiable entre sistemas y aplicaciones. Proporciona procesamiento de datos unificado, de alto rendimiento y de baja latencia en tiempo real.
Este tutorial le mostrará cómo instalar y configurar Apache Kafka en CentOS 7. Esta guía cubrirá la instalación y configuración de Apache Kafka y Apache Zookeeper.
Requisitos previos
- Servidor CentOS 7
- Privilegios de root
¿Que haremos?
- Instalar Java OpenJDK 8
- Instalar y configurar Apache Zookeeper
- Instalar y configurar Apache Kafka
- Configurar Apache Zookeeper y Apache Kafka como servicios
- Pruebas
Paso 1: instalar Java OpenJDK 8
Apache Kafka ha sido escrito en Java y Scala, por lo que debemos instalar Java en el servidor.
Instale Java OpenJDK 8 en el servidor CentOS 7 usando el comando yum a continuación.
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
Una vez completada la instalación, verifique la versión de Java instalada.
java -version
Ahora tienes instalado Java OpenJDK 8.
Paso 2: instalar Apache Zookeeper
Apache Kafka utiliza zookeeper para elegir el controlador, la membresía del clúster y la configuración de temas. Zookeeper es un servicio distribuido de configuración y sincronización.
En este paso, instalaremos Apache Zookeeper mediante la instalación binaria.
Antes de instalar Apache Zookeeper, agregue un nuevo usuario llamado 'zookeeper' con el directorio de inicio '/opt/zookeeper'.
useradd -d /opt/zookeeper -s /bin/bash zookeeper
passwd zookeeper
Ahora vaya al directorio '/opt' y descargue el archivo binario de Apache Zookeeper.
cd /opt
wget https://www-us.apache.org/dist/zookeeper/stable/zookeeper-3.4.12.tar.gz
Extraiga el archivo zookeeper.tar.gz al directorio '/opt/zookeeper' y cambie el propietario del directorio al usuario y grupo 'zookeeper'.
tar -xf zookeeper-3.4.12.tar.gz -C /opt/zookeeper --strip-component=1
sudo chown -R zookeeper:zookeeper /opt/zookeeper
A continuación, necesitamos crear una nueva configuración de cuidador del zoológico.
Inicie sesión como usuario 'zookeeper' y cree una nueva configuración 'zoo.conf' en el directorio 'conf'.
su - zookeeper
vim conf/zoo.cfg
Pegue la siguiente configuración allí.
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
Guardar y Salir.
La configuración básica de Apache Zookeeper se completó y se ejecutará en el puerto 2181.
Paso 3: descargue e instale Apache Kafka
En este paso, instalaremos y configuraremos Apache Kafka.
Agregue un nuevo usuario llamado 'kafka' con el directorio de inicio '/opt/kafka'.
useradd -d /opt/kafka -s /bin/bash kafka
passwd kafka
Vaya al directorio '/opt' y descargue los archivos binarios comprimidos de Apache Kafka.
cd /opt
wget http://www-eu.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
Extraiga el archivo kafka_*.tar.gz al directorio '/opt/kafka' y cambie el propietario de todos los archivos al usuario y grupo 'kafka'.
tar -xf kafka_2.11-2.0.0.tgz -C /opt/kafka --strip-components=1
sudo chown -R kafka:kafka /opt/kafka
A continuación, inicie sesión como usuario 'kafka' y edite la configuración del servidor.
su - kafka
vim config/server.properties
Pegue la siguiente configuración al final de la línea.
delete.topic.enable = true
Guardar y Salir.
Se descargó Apache Kafka y se completó la configuración básica.
Paso 4: configurar Apache Kafka y Zookeeper como servicios
Este tutorial ejecutará Apache Zookeeper y Apache Kafka como servicios systemd.
Necesitamos crear nuevos archivos de servicio para ambas plataformas.
Vaya al directorio '/lib/systemd/system' y cree un nuevo archivo de servicio llamado 'zookeeper.service'.
cd /lib/systemd/system/
vim zookeeper.service
Pegue la siguiente configuración allí.
[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
Guardar y Salir.
A continuación, cree el archivo de servicio para Apache Kafka 'kafka.service'.
vim kafka.service
Pegue la siguiente configuración allí.
[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'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Guarde y salga, luego vuelva a cargar el sistema de gestión systemd.
systemctl daemon-reload
Inicie Apache Zookeeper y Apache Kafka usando los comandos systemctl a continuación.
systemctl start zookeeper
systemctl enable zookeeper
systemctl iniciar kafka
systemctl habilitar kafka
Apache Zookeeper y Apache Kafka están en funcionamiento. Zookeeper ejecutándose en el puerto '2181' y Kafka en el puerto '9092', verifíquelo usando el siguiente comando netstat.
netstat -plntu
Paso 5 - Prueba
Inicie sesión como usuario 'kafka' y vaya al directorio 'bin/'.
su - kafka
cd bin/
Ahora crea un nuevo tema llamado 'HakaseTesting'.
./kafka-topics.sh --create --zookeeper localhost:2181 \
--replication-factor 1 --partitions 1 \
--topic HakaseTesting
Y ejecute 'kafka-console-producer.sh' con el tema 'HakaseTesting'.
./kafka-console-producer.sh --broker-list localhost:9092 \
--topic HakaseTesting
Escriba cualquier contenido en el shell.
A continuación, abra una nueva terminal, inicie sesión en el servidor e inicie sesión como usuario 'kafka'.
Ejecute 'kafka-console-consumer.sh' para el tema 'HakaseTesting'.
./kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic HakaseTesting --from-beginning
Y cuando escribe cualquier entrada desde el shell 'kafka-console-producer.sh', obtendrá el mismo resultado en el shell 'kafka-console-consumer.sh'.
La instalación y configuración de Apache Kafka en CentOS 7 se completó con éxito.
Referencia
- https://kafka.apache.org/documentation/