Cómo configurar Zookeeper Cluster para Kafka

Zookeeper es un servicio centralizado para manejar la sincronización distribuida. Kafka usa zookeeper para manejar múltiples agentes para garantizar una mayor disponibilidad y manejo de fallas.

Pero, ¿y si el cuidador del zoológico fallaba? No podemos arriesgarnos a ejecutar un solo Zookeeper para manejar un sistema distribuido y luego tener un solo punto de falla. Para manejar esto, ejecutamos varios zookeeper, es decir, un clúster de Zookeeper también conocido como quórum.

En este artículo, configuraremos un clúster de Kafka en una máquina Amazon EC2.

Que necesitas

Debe tener una cuenta en AWS y poder crear una instancia EC2. Necesitaremos tres instancias EC2 para instalar y configurar el clúster de Zookeeper.

Elegimos el número impar de nodos Zookeeper para la elección del líder en caso de falla.

Creación de instancias EC2

Cree 3 instancias EC2 de tipo t2.small si recién está aprendiendo o configurando un entorno de prueba. Para la producción, vaya con la instancia con la RAM de tamaño de 6 a 8 GB. Necesita buena RAM para manejar los requisitos del montón de la máquina virtual Java.

Estoy usando Ubuntu 16.04 para el tutorial.

Debe cambiar el grupo de seguridad de cada instancia y permitir el rango de puertos 2888-3888 y el puerto 2181.

Puede cambiar el número de puerto si desea utilizar diferentes puertos para su configuración. Yo voy con este.

Una vez que tenga su instancia EC2 en ejecución, podemos comenzar nuestra configuración.

Configuración de Zookeeper

Inicie sesión en cada instancia EC2 y actualice los paquetes.

$ sudo apt-get update

Luego repita los siguientes pasos en cada una de las instancias.

1: Descargue la última versión de Kafka.

$ wget http://mirrors.estointernet.in/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz

2: Extraiga el archivo tar de Kafka

$ tar xzf kafka_2.11-2.1.0.tgz

3: Cree un archivo myid.

$ mkdir / var / lib / guardián del zoológico

$ cd / lib /


guardián del
zoológico $ touch myid


$ echo “1” >> myid

Nota: Dado que tenemos 3 servidores, en cada uno el número sería diferente. En el primer servidor use 1, en el segundo servidor use 2 y para el tercer uso 3, puede usar varios servidores y asignar estos números incrementales como identificadores.

Por ejemplo, en el segundo servidor, haremos lo siguiente.

$ mkdir / var / lib / guardián del zoológico

$ cd / lib /


guardián del
zoológico $ touch myid


$ echo “2” >> myid

3er servidor:

$ mkdir / var / lib / guardián del zoológico

$ cd / lib /


guardián del
zoológico $ touch myid


$ echo “3” >> myid

Ahora configuraremos el guardián del zoológico. Aquí está el archivo de configuración para cada servidor.

Abra el archivo de configuración de un cuidador del zoológico.

$ cd kafka_2.11-2.1.0

$ vi config / zookeeper.properties

Agregue la configuración que se muestra a continuación en cada servidor.

Servidor 1:

dataDir = / var / lib / zookeeper

clientPort = 2181


maxClientCnxns = 0


initLimit = 5


syncLimit = 2


tickTime = 2000


# lista de servidores


server.1 = 0.0.0.0: 2888: 3888


server.2 =
: 2888: 3888

servidor.3 =
: 2888: 3888

Servidor 2:

dataDir = / var / lib / zookeeper

clientPort = 2181


maxClientCnxns = 0


initLimit = 5


syncLimit = 2


tickTime = 2000


# lista de servidores


server.1 =
: 3888

servidor.2 = 0.0.0.0: 2888: 3888


servidor.3 =
: 2888: 3888

Servidor 3:

dataDir = / var / lib / zookeeper

clientPort = 2181


maxClientCnxns = 0


initLimit = 5


syncLimit = 2


tickTime = 2000


# lista de servidores


server.1 =
: 3888

servidor.2 =
: 3888

servidor.3 = 0.0.0.0: 2888: 3888

Observe cómo vamos cambiando la IP en cada configuración. Aquí el servidor.es el ID que creamos anteriormente. Para la instancia local, estamos usando 0.0.0.0 y dando la dirección IP de otro servidor zookeeper para las respectivas ID.

Este es un paso muy importante, un error en la IP y te rascarás la cabeza durante horas al depurar el error de conexión de Java.

Una vez que la configuración esté establecida en cada servidor, inicie el guardián del zoológico.

Repita este comando en cada servidor después de cambiar a la carpeta del servidor de Kafka.

$ bin / zookeeper-server-start.sh config / zookeeper.properties

Y eso es.

Ha configurado correctamente el clúster del guardián del zoológico.

Este artículo es parte de una serie, consulte otros artículos aquí:

1: Qué es Kafka
2: Configuración de Zookeeper Cluster para Kafka en AWS EC2
3: Configuración de Multi-Broker Kafka en AWS EC2
4: Configuración de la autenticación en el clúster de Multi-Broker Kafka en AWS EC2
5: Configuración de la administración de Kafka para el clúster de Kafka
6: Estimación de capacidad para Kafka Cluster en producción
7: Prueba de rendimiento Kafka Cluster

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *