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.