Apache Kafka es una plataforma de transmisión de datos distribuida y de código abierto que se utiliza para construir pipelines de datos en tiempo real y aplicaciones de transmisión de datos. En este artículo, te mostraremos cómo instalar Apache Kafka en Fedora 39 paso a paso. Este tutorial está diseñado para ser técnico pero accesible para los recién llegados.
Requisitos Previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un sistema Fedora 39 instalado.
- Acceso a una cuenta con privilegios de superusuario (root) o acceso a
sudo
. - Java Development Kit (JDK) instalado.
Paso 1: Actualizar el Sistema
Primero, asegúrate de que tu sistema esté actualizado. Abre una terminal y ejecuta los siguientes comandos:
sudo dnf update -y
Paso 2: Instalar Java
Apache Kafka requiere Java para ejecutarse. Instala OpenJDK con el siguiente comando:
sudo dnf install java-11-openjdk-devel -y
Verifica la instalación de Java:
java -version
Deberías ver la versión de Java instalada, asegurándote de que es Java 11.
Paso 3: Descargar Apache Kafka
Visita la página de descargas de Apache Kafka y copia el enlace de la última versión estable. Luego, descarga Kafka usando wget
:
cd /opt
sudo wget https://downloads.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz
Extrae el archivo descargado:
sudo tar -xzf kafka_2.13-3.0.0.tgz
sudo mv kafka_2.13-3.0.0 kafka
Paso 4: Configurar Apache Kafka
Configurar ZooKeeper
Kafka requiere ZooKeeper para coordinar y gestionar el clúster. Kafka viene con un archivo de configuración predeterminado para ZooKeeper. Puedes usar este archivo o modificarlo según tus necesidades:
sudo nano /opt/kafka/config/zookeeper.properties
Usualmente, la configuración predeterminada es suficiente para propósitos de prueba. Asegúrate de que los siguientes parámetros estén configurados correctamente:
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0
Configurar Kafka
Edita el archivo de configuración de Kafka:
sudo nano /opt/kafka/config/server.properties
Asegúrate de configurar los siguientes parámetros básicos:
broker.id=0
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
Crear Scripts de Inicio
Para facilitar el inicio de ZooKeeper y Kafka, crea scripts de inicio en /usr/bin/
:
sudo nano /usr/bin/start-zookeeper.sh
Añade el siguiente contenido:
#!/bin/bash
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
Haz el script ejecutable:
sudo chmod +x /usr/bin/start-zookeeper.sh
Luego, crea el script de inicio para Kafka:
sudo nano /usr/bin/start-kafka.sh
Añade el siguiente contenido:
#!/bin/bash
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Haz el script ejecutable:
sudo chmod +x /usr/bin/start-kafka.sh
Paso 5: Iniciar ZooKeeper y Kafka
Inicia ZooKeeper:
sudo start-zookeeper.sh
Luego, inicia Kafka:
sudo start-kafka.sh
Paso 6: Verificar la Instalación de Kafka
Para verificar que Kafka se ha instalado y configurado correctamente, crea un tema (topic) de prueba y publica un mensaje.
Crear un Tema
Usa el siguiente comando para crear un tema llamado test
:
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
Listar Temas
Verifica que el tema se haya creado correctamente listando todos los temas:
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Publicar un Mensaje
Abre una terminal nueva y usa el siguiente comando para iniciar un productor de Kafka:
/opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
Escribe un mensaje y presiona Enter.
Consumir un Mensaje
Abre otra terminal nueva y usa el siguiente comando para iniciar un consumidor de Kafka:
/opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
Deberías ver el mensaje que publicaste desde el productor.
Para mejorar el rendimiento y la gestión de tus aplicaciones de transmisión de datos con Apache Kafka, considera utilizar los servicios de Shape.host. Ofrecen soluciones de Cloud VPS que proporcionan escalabilidad, alta disponibilidad y un rendimiento superior para tus aplicaciones de transmisión de datos. Con Shape.host, puedes asegurarte de que tu infraestructura esté siempre disponible y funcionando de manera óptima.