Apache Kafka es una plataforma de mensajería distribuida diseñada para manejar grandes volúmenes de datos en tiempo real. Es utilizada en arquitecturas de streaming de datos, permitiendo la comunicación eficiente entre productores y consumidores de mensajes.
En esta guía, explicaremos cómo instalar y configurar Apache Kafka en Linux para la gestión de flujos de datos en tiempo real.
Requisitos Previos
Antes de comenzar, asegúrate de contar con:
- Un servidor Linux (Ubuntu/Debian/CentOS/RHEL)
- Java 8 o superior instalado
- Apache Zookeeper instalado (Kafka lo requiere para coordinar los brokers)
- Conexión a internet para descargar los paquetes
Requisitos de Hardware
Para un rendimiento óptimo, se recomienda:
- Servidor Kafka:
- CPU: 4 núcleos o más
- RAM: 8 GB o más
- Almacenamiento: SSD con al menos 100 GB libres
- Red: Conectividad de alta velocidad (Gigabit Ethernet o superior)
- Servidor Zookeeper:
- CPU: 2 núcleos
- RAM: 4 GB
- Almacenamiento: 50 GB libres
- Red: Conectividad estable y baja latencia
- Nodos consumidores/productores:
- CPU: 2 núcleos o más
- RAM: 4 GB o más
- Red: Conectividad estable
Se recomienda utilizar varios brokers para balancear la carga y evitar puntos únicos de fallo.
Paso 1: Instalación de Java
Kafka requiere Java para ejecutarse. Para verificar si Java está instalado, usa:
java -version
Si no está instalado, instálalo con:
sudo apt update && sudo apt install -y openjdk-11-jdk
Para CentOS/RHEL:
sudo yum install -y java-11-openjdk
Paso 2: Descargar e Instalar Apache Kafka
Descarga la última versión de Kafka desde el sitio oficial:
wget https://downloads.apache.org/kafka/latest/kafka_2.13-3.4.0.tgz
Extrae los archivos:
tar -xvzf kafka_2.13-3.4.0.tgz
mv kafka_2.13-3.4.0 /opt/kafka
Paso 3: Configuración de Zookeeper
Kafka usa Zookeeper para la gestión de brokers. Inicia Zookeeper con:
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties &
Para ejecutarlo en segundo plano:
echo "bin/zookeeper-server-start.sh config/zookeeper.properties &" >> start-kafka.sh
chmod +x start-kafka.sh
Paso 4: Iniciar el Servidor Kafka
Inicia el broker de Kafka con:
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties &
Para asegurarte de que Kafka está corriendo, usa:
jps
Deberías ver procesos como Kafka
y QuorumPeerMain
(Zookeeper).
Paso 5: Crear un Tópico en Kafka
Kafka organiza los datos en «tópicos». Para crear un tópico llamado mi-topico
:
/opt/kafka/bin/kafka-topics.sh --create --topic mi-topico --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
Verifica la existencia del tópico:
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Paso 6: Crear un Productor y un Consumidor
Para enviar mensajes a un tópico:
/opt/kafka/bin/kafka-console-producer.sh --topic mi-topico --bootstrap-server localhost:9092
Escribe un mensaje y presiona Enter
.
Para recibir los mensajes del tópico:
/opt/kafka/bin/kafka-console-consumer.sh --topic mi-topico --bootstrap-server localhost:9092 --from-beginning
Casos de Uso de Kafka
- Streaming de datos en tiempo real (procesamiento de eventos)
- Integración de microservicios (comunicación entre servicios)
- Monitoreo y análisis de logs
- Ingesta de datos en Big Data (ETL en tiempo real)
Conclusión
Apache Kafka es una herramienta poderosa para gestionar flujos de datos en tiempo real. Con esta guía, ahora puedes instalar, configurar y usar Kafka en Linux para transmitir datos de manera eficiente. ¡Explora más sobre su integración en arquitecturas modernas!