Apache Kafka: Guía de comandos básicos

Última actualización: 04/10/2020

En este artículo vamos a aprender los comandos básicos de Apache Kafka y cómo ejecutar un pequeño clúster para nuestros proyectos Big Data. También aprenderemos a producir y consumir mensajes y a observar los topics.

Comandos Apache Kafka

De esta forma, podremos tener disponible rápidamente una instalación local de Apache Kafka sobre la que desarrollar y hacer las pruebas que necesitemos, generalmente en la fase de desarrollo. A continuación los pasos y los comandos para Apache Kafka:

  1. El primer paso consiste en descargar Apache Kafka. La última versión disponible se puede encontrar en su web.
  2. Extraer el fichero descargado (tgz). Para ello podemos usar el comando:
    tar xvf kafka_x.x.x.x.tgz
  3. Cambiamos al directorio bin que acabamos de descomprimir. Este directorio contiene todos los ejecutables shell que vamos a necesitar en Apache Kafka.
    cd kafka_x.x.x.x/bin
  4. Arrancamos el servidor de Zookeeper con el ejecutable “zookeeper-server-start.sh”. Este servicio es necesario para coordinar los brokers de Kafka. Le pasamos como parámetro el fichero de configuración “zookeeper.properties” que se encuentra en el directorio config de la instalación de Kafka. Este fichero contiene las propiedades por defecto del servidor de Zookeeper, desplegando en el puerto 2181:
    ./zookeeper-server-start.sh ../config/zookeeper.properties
  5. A continuación, una vez que Zookeeper está en ejecución, podemos arrancar un broker de Kafka (en otra consola) indicándole su fichero de configuración por defecto como hemos hecho en el paso anterior:
    ./kafka-server-start.sh ../config/server.properties
  6. Para poder publicar mensajes, creamos un topic de prueba con nombre “testtopic” y lo configuramos con dos particiones y un factor de replicación de 1. También indicamos al script el host y el puerto donde se encuentra nuestro Zookeeper:
    ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic testtopic
  7. Una vez creado el topic, podemos ejecutar consumidores en una terminal para poder ver los mensajes que se están publicando. Si dejamos el mismo nombre del grupo en varios consumidores pertenecerán al mismo grupo de consumidores:
    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testtopic --group grupo1
  8. Para publicar mensajes en nuestro topic desde la consola, podemos usar el siguiente comando:
    ./kafka-console-producer.sh --broker-list localhost:9092 --topic testtopic
  9. Los mensajes publicados nos aparecerán en los consumidores que tengamos escuchando ese topic. Si tenemos varios con el mismo grupo, los mensajes serán consumidos en round robin.
  10. También podemos acceder a los detalles del topic con el siguiente comando:
    ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic testtopic 
    
    Topic:testtopic PartitionCount:2 ReplicationFactor:1 Configs: 
     Topic: testtopic Partition: 0 Leader: 0 Replicas: 0 Isr: 0 
     Topic: testtopic Partition: 1 Leader: 0 Replicas: 0 Isr: 0 
    Este comando nos muestra el número de particiones, las réplicas y el líder. Esta información es muy útil en un entorno real, con un clúster.
  11. Podemos listar todos los topics creados de la siguiente forma:
    ./kafka-topics.sh --list --zookeeper localhost:2181
  12. Para obtener los detalles de los consumidores y el offset de cada partición, accedemos con este comando:
    ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group grupo1 --describe
    
     GROUP           TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                     HOST            CLIENT-ID
    
     grupo1          testtopic       0          -               0               -               consumer-1-94ab985c-c54f-49ba-ab34-c6eb12590d3b /127.0.0.1      consumer-1 
     grupo1          testtopic       1          -               0               -               consumer-1-94ab985c-c54f-49ba-ab34-c6eb12590d3b /127.0.0.1      consumer-1 

¡Echa un ojo a mi lista de reproducción de Big Data en Youtube!

Si te ayuda el contenido del blog, por favor considera unirte a la lista de correo para reconocer el trabajo!

Deja una respuesta