Introducción
Apache Kafka es una plataforma de transmisión de eventos distribuidos de código abierto desarrollada por Apache Software Foundation. Está escrito en los lenguajes de programación Scala y Java. Puede instalar Kafka en cualquier plataforma que admita el lenguaje de programación Java.
Este tutorial proporciona instrucciones detalladas para instalar Apache Kafka en el sistema Linux Ubuntu 22.04 LTS.
Requisitos previos
Debe tener acceso de cuenta privilegiado sudo al sistema Linux Ubuntu 22.04.
Si desea instalar Apache Kafka en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita saber la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña de usuario raíz.
Si no está usando el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario :
ssh nome_utente@IP_DEL_SERVER
A continuación, se le pedirá que introduzca su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22 , si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p , luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar Java
Podemos ejecutar el servidor Apache Kafka en sistemas que admitan Java. Así que asegúrese de tener Java instalado en su sistema Ubuntu.
Use los siguientes comandos para instalar OpenJDK en su sistema Ubuntu desde los repositorios oficiales:
sudo apt update
sudo apt install default-jdk
Compruebe la versión activa actual de Java:
java --version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Descarga la última versión de Apache Kafka
Puede descargar los últimos binarios de Apache Kafka desde su página de descarga oficial . Alternativamente, puede descargar Kafka 3.2.0 con el siguiente comando.
wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
Luego extraiga el archivo comprimido descargado y colóquelo en el directorio /usr/local/kafka :
tar xzf kafka_2.13-3.2.0.tgz
sudo mv kafka_2.13-3.2.0 /usr/local/kafka
Crear scripts de inicio de Systemd
Ahora, cree archivos unitarios systemd para los servicios Zookeeper y Kafka. Esto lo ayudará a iniciar / detener el servicio Kafka de una manera fácil.
Primero, cree un archivo de unidad systemd para Zookeeper:
sudo nano /etc/systemd/system/zookeeper.service
Y agrega el siguiente contenido:
[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/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Guarde el archivo y ciérrelo.
Luego, cree un archivo de unidad systemd para el servicio Kafka:
sudo nano /etc/systemd/system/kafka.service
Agregue el contenido a continuación. Asegúrese de configurar la ruta JAVA_HOME correcta de acuerdo con 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/java-11-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
Guarde el archivo y cierre.
Vuelva a cargar el demonio systemd para aplicar nuevos cambios:
sudo systemctl daemon-reload
Esto recargará todos los archivos systemd en el entorno del sistema.
Inicie los servicios Zookeeper y Kafka
Comencemos ambos servicios uno por uno. Primero, debe iniciar el servicio ZooKeeper y luego iniciar Kafka. Utilice el comando systemctl para iniciar una instancia de ZooKeeper de un solo nodo.
sudo systemctl start zookeeper
sudo systemctl start kafka
Consulta los estados de ambos servicios:
sudo systemctl status zookeeper
sudo systemctl status kafka
Eso es todo. Ha instalado con éxito el servidor Apache Kafka en el sistema Ubuntu 22.04. A continuación, crearemos temas en el servidor Kafka.
Crear un tema en Kafka
Kafka proporciona múltiples scripts de shell predefinidos para trabajar. Primero, cree un tema llamado "testTopic" con una sola partición con una sola réplica:
cd /usr/local/kafka
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testTopic
Created topic testTopic.
Aquí:
- Use la opción
--create
para crear un nuevo tema - La opción
--replication-factor
describe cuántas copias de datos se crearán. Dado que estamos ejecutando con una sola instancia, mantenga este valor en 1. - Establezca opciones
--partitions
como la cantidad de corredores entre los que desea que se dividan sus datos. Como estamos ejecutando con un solo corredor, mantenga este valor en 1. - La opción
--topic
define el nombre del tema .
Puede crear varios argumentos ejecutando el mismo comando anterior. A continuación, puede ver los argumentos creados en Kafka ejecutando el siguiente comando:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Alternativamente, en lugar de crear temas manualmente, también puede configurar sus corredores para crear temas automáticamente cuando se publica un tema inexistente.
Enviar y recibir mensajes en Kafka
El "productor" es el proceso responsable de ingresar datos en nuestro Kafka. Kafka viene con un cliente de línea de comandos que tomará la entrada de un archivo o una 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.
Ejecutamos el productor y luego escribimos algunos mensajes en la consola para enviar al servidor:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic
>Welcome to kafka
>This is my first topic
>
Puede salir de este comando o mantener este terminal en ejecución para realizar más pruebas. Ahora abra una nueva terminal para el proceso de consumo de Kafka en el siguiente paso.
Kafka también tiene 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
Ahora, si todavía está ejecutando el productor Kafka en otra terminal. Simplemente escriba un texto en la terminal de ese fabricante. será inmediatamente visible en el terminal del consumidor. Echa un vistazo a la captura de pantalla a continuación del productor y consumidor Kafka en el trabajo:
Conclusión
Este tutorial lo ayudó a instalar y configurar el servidor Apache Kafka en el sistema Linux Ubuntu 22.04. Además, aprendió a crear un tema nuevo en el servidor de Kafka y a ejecutar un proceso de producción y consumo de muestra con Apache Kafka.