Apache Kafka es una plataforma de transmisión distribuida. Es útil para construir canalizaciones de transmisión de datos en tiempo real para obtener datos entre los sistemas o aplicaciones. Otra función útil son las aplicaciones de transmisión en tiempo real que pueden transformar flujos de datos o reaccionar ante un flujo de datos.
Este tutorial lo ayudará a instalar los sistemas Apache Kafka CentOS 8 o RHEL 8 Linux.
Requisitos
- Se recomienda que el sistema recién instalado siga la configuración inicial del servidor.
- Acceso Shell al sistema CentOS 8 con cuenta de privilegios sudo.
Paso 1:instalar Java
Debe tener Java instalado en su sistema para ejecutar Apache Kafka. Puede instalar OpenJDK en su máquina ejecutando el siguiente comando. Además, instale algunas otras herramientas necesarias.
sudo dnf install java-11-openjdk wget vim
Paso 2:descarga Apache Kafka
Descargue los archivos binarios de Apache Kafka desde su sitio web oficial de descargas. También puede seleccionar cualquier espejo cercano para descargar.
wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
Luego extraiga el archivo comprimido
tar xzf kafka_2.13-2.7.0.tgz mv kafka_2.13-2.7.0 /usr/local/kafka
Paso 3:configurar los archivos de unidad de Kafka Systemd
CentOS 8 usa systemd para administrar el estado de sus servicios. Por lo tanto, debemos crear archivos unitarios systemd para el servicio Zookeeper y Kafka. Lo que nos ayuda a administrar los servicios de Kafka para iniciar/detener.
Primero, cree un archivo de unidad systemd para Zookeeper con el siguiente comando:
vim /etc/systemd/system/zookeeper.service
Agregue el contenido a continuación:
[Unit] Description=Apache Zookeeper server Documentation=http://zookeeper.apache.org Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple ExecStart=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Guarde el archivo y ciérrelo.
Luego, para crear un archivo de unidad Kafka systemd usando el siguiente comando:
vim /etc/systemd/system/kafka.service
Agrega el siguiente contenido. Asegúrese de establecer el JAVA_HOME correcto ruta según el Java instalado en su sistema.
[Unit] Description=Apache Kafka Server Documentation=http://kafka.apache.org/documentation.html Requires=zookeeper.service [Service] Type=simple Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk" ExecStart=/usr/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties ExecStop=/usr/bin/bash /usr/local/kafka/bin/kafka-server-stop.sh [Install] WantedBy=multi-user.target
Guarde el archivo y ciérrelo.
Vuelva a cargar el demonio systemd para aplicar los cambios.
systemctl daemon-reload
Paso 4:iniciar el servidor Kafka
Kafka requería ZooKeeper, así que primero, inicie un servidor ZooKeeper en su sistema. Puede usar el script disponible con Kafka para iniciar una instancia de ZooKeeper de un solo nodo.
sudo systemctl start zookeeper
Ahora inicie el servidor Kafka y vea el estado de ejecución:
sudo systemctl start kafka sudo systemctl status kafka
Todo listo. Ha instalado correctamente Kafka en su CentOS 8. La siguiente parte de este tutorial lo ayudará a crear temas en el clúster de Kafka y a trabajar con el servicio de productores y consumidores de Kafka.
Paso 5:creación de temas en Apache Kafka
Apache Kafka proporciona varios scripts de shell para trabajar en él. Primero, crea un tema llamado "testTopic ” con una sola partición con una sola réplica:
cd /usr/local/kafka bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic Created topic testTopic.
El factor de replicación describe cuántas copias de datos se crearán. Como estamos ejecutando con una sola instancia, mantenga este valor en 1.
Establezca las opciones de particiones como el número de intermediarios entre los que desea que se dividan sus datos. Como estamos trabajando con un solo corredor, mantenga este valor en 1.
Puede crear varios temas ejecutando el mismo comando que el anterior. Después de eso, puede ver los temas creados en Kafka ejecutando el siguiente comando:
bin/kafka-topics.sh --list --zookeeper localhost:2181 testTopic KafkaonCentOS8 TutorialKafkaInstallCentOS8
Alternativamente, en lugar de crear temas manualmente, también puede configurar sus agentes para crear temas automáticamente cuando se publica un tema inexistente.
Paso 6:productor y consumidor de Apache Kafka
El “productor” es el proceso responsable de poner datos en nuestro Kafka. Kafka viene con un cliente de línea de comandos que tomará la entrada de un archivo o de la entrada estándar y la enviará como mensajes al clúster de Kafka. El Kafka predeterminado envía cada línea como un mensaje separado.
Ejecutemos el productor y luego escribamos algunos mensajes en la consola para enviarlos al servidor.
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic >Welcome to kafka >This is my first topic >
Ahora abra una nueva terminal para ejecutar el proceso de consumidor de Apache Kafka. Kafka también proporciona un consumidor de línea de comandos para leer datos del clúster de Kafka y mostrar mensajes en la salida estándar.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is my first topic
La opción –from-beginning se utiliza para leer mensajes desde el principio del tema seleccionado. Puede omitir esta opción para leer solo los mensajes más recientes.
Por ejemplo, ejecute el productor y el consumidor de Kafka en terminales independientes. Simplemente escriba un texto en esa terminal del productor. será inmediatamente visible en el terminal del consumidor. Vea la siguiente captura de pantalla del productor y consumidor de Kafka trabajando:
Conclusión
Ha instalado y configurado con éxito el servicio Kafka en la máquina CentOS 8 Linux.