En este tutorial, le mostraremos cómo instalar y configurar Apache Kafka en un VPS con Ubuntu 18.04.
Kafka o Apache Kafka es un sistema de mensajería distribuida basado en el principio del modelo pub-sub (publish-subscribe). Nos permite publicar y suscribirnos a un flujo de registros que se pueden categorizar. Es un increíblemente rápido , altamente escalable , tolerante a fallos y está diseñado para procesar grandes cantidades de datos en tiempo real . Apache Kafka también se puede utilizar como alternativa a un intermediario de mensajes, lo que nos permite procesar/transformar un flujo de registros. Kafka se puede utilizar como un sistema de mensajería, pero en una escala incomparablemente enorme. En general, Apache Kafka es una herramienta muy poderosa cuando se usa correctamente.
Requisitos
- Un servidor con Ubuntu 18.04 con al menos 4 GB de memoria. Para los propósitos de este tutorial, usaremos uno de nuestros VPS administrados con Ubuntu 18.04.
- Acceso SSH con privilegios de raíz, o acceso al propio usuario "raíz"
Paso 1:Inicie sesión a través de SSH y actualice el sistema
Inicie sesión en su Ubuntu 18.04 VPS con SSH como usuario root:
ssh root@IP_Address -p Port_number
Reemplace "root" con un usuario que tenga privilegios sudo si es necesario. Además, reemplace "IP_Address" y "Port_Number" con la dirección IP y el puerto SSH respectivos de su servidor.
Una vez hecho esto, puede verificar si tiene instalada la versión adecuada de Ubuntu en su servidor con el siguiente comando:
# lsb_release -a
Deberías obtener este resultado:
Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
Luego, ejecute el siguiente comando para asegurarse de que todos los paquetes instalados en el servidor estén actualizados a sus últimas versiones disponibles:
# apt update && apt upgrade
Paso 2:Agregar un usuario del sistema
Vamos a crear un nuevo usuario llamado 'kafka', después de lo cual agregaremos este nuevo usuario como sudoer.
# adduser kafka # usermod -aG sudo kafka
Paso 3:Instalar Java
Kafka está escrito en Java, por lo que se requiere una JVM para que funcione. En este tutorial, usaremos OpenJDK 11, ya que es la versión estándar de Java que viene con Ubuntu desde septiembre de 2018.
# apt install default-jre
Paso 4:Descarga Apache Kafka
Ahora descarguemos Kafka, puede ir aquí y descargar la última versión si es necesario. El enlace de descarga más reciente en el momento de escribir este artículo ya se ha introducido en el ejemplo para usted.
# su - kafka
wget https://www-us.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz -O kafka.tgz
Ahora que se ha descargado el binario de Apache Kafka, debemos extraerlo en nuestro directorio de usuarios de Kafka
$ tar -xzvf kafka.tgz --stripe 1
Paso 5:Configurar Apache Kafka
Es hora de configurar Apache Kafka. De forma predeterminada, no podemos eliminar temas, categorías o grupos en los que se pueden publicar mensajes. Para cambiar este comportamiento, necesitamos editar la configuración predeterminada.
$ nano ~/config/server.properties
Agregue la siguiente línea a la última línea del archivo de configuración.
eliminar.topic.habilitar =verdadero
Paso 6:Cree un archivo de unidad del sistema para Apache Kafka
Se requiere Zookeeper para ejecutar Kafka. Kafka usa zookeeper, por lo que primero debemos iniciar una instancia del servidor Zookeeper antes de iniciar el servicio Apache Kafka. En este tutorial, usaremos el script de conveniencia empaquetado con Kafka para obtener una instancia de Zookeeper de un solo nodo rápida y sucia.
Abra un nuevo archivo en la ruta del archivo /etc/systemd/system/zookeeper.service
y ábralo en su editor de texto preferido. Usaremos nano
para este tutorial.
$ sudo nano /etc/systemd/system/zookeeper.service
Pegue las siguientes líneas en él:
[Unit] Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple User=kafka ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties ExecStop=/home/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Ahora, creemos un archivo de unidad del sistema para kafka en la ruta del archivo /etc/systemd/system/kafka.service
:
$ sudo nano /etc/systemd/system/kafka.service
Pegue las siguientes líneas en el archivo:
[Unit] Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=kafka ExecStart=/bin/sh -c '/home/kafka/bin/kafka-server-start.sh /home/kafka/config/server.properties > /home/kafka/kafka.log 2>&1' ExecStop=/home/kafka/bin/kafka-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
Se agregaron las nuevas unidades del sistema, así que habilitemos que Apache Kafka se ejecute automáticamente en el arranque y luego ejecute el servicio.
$ sudo systemctl enable kafka $ sudo systemctl start kafka
Paso 7:Crear un tema
En este paso, crearemos un tema llamado "FirstTopic", con una sola partición y una sola réplica:
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic FirstTopic Created topic "FirstTopic".
El valor del factor de replicación describe cuántas copias de datos se crearán. Estamos ejecutando con una sola instancia, por lo que el valor sería 1.
El valor de las particiones describe la cantidad de intermediarios entre los que desea que se dividan sus datos. Estamos ejecutando con un solo corredor, por lo que el valor sería 1.
Ahora puede ver el tema creado en Kafka ejecutando el comando list topic:
$ bin/kafka-topics.sh --list --zookeeper localhost:2181 FirstTopic
Paso 8:Enviar mensajes usando Apache Kafka
Apache 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 "productor" es el proceso que tiene la responsabilidad de poner datos en nuestro servicio Kafka. De forma predeterminada, Kafka envía cada línea como un mensaje independiente.
Ejecutemos el productor y luego escribamos algunos mensajes en la consola para enviarlos al servidor.
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic FirstTopic >Welcome to kafka >This is the content of our first topic >
Mantenga la terminal abierta y pasemos al siguiente paso.
Paso 9:Utilice Apache Kafka como consumidor
Apache Kafka también tiene una línea de comando para que el consumidor lea datos de Kafka; esto es para que el consumidor pueda usar Kafka para mostrar mensajes en una salida estándar.
Ejecute el siguiente comando en una nueva sesión SSH.
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is the content of our first topic
¡Eso es todo! Apache Kafka se ha instalado y configurado correctamente. Ahora podemos escribir algunos mensajes en la terminal del productor como se indicó en el paso anterior. Los mensajes serán inmediatamente visibles en nuestro terminal de consumo.
Por supuesto, no tiene que saber cómo instalar Apache Kafka en Ubuntu 18.04 si tiene un VPS de Ubuntu 18.04 alojado con nosotros. Si lo hace, simplemente puede pedirle a nuestro equipo de soporte que instale Apache Kafka en Ubuntu 18.04 por usted. Están disponibles las 24 horas del día, los 7 días de la semana y podrán ayudarlo con la instalación de Apache Kafka, así como con cualquier requisito adicional que pueda tener.
PD. Si disfruta leyendo esta publicación de blog sobre cómo instalar Apache Kafka en Ubuntu 18.04, siéntase libre de compartirla en las redes sociales utilizando los accesos directos a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.