- Instalar en un servidor Zookeper
- Instalar en 3 servidores diferentes Kafka
- Configurar server.propertis de cada servidor Kafka para que accedan al servidor de Zookeeper.
- zookeeper.connect=zookeeper_ip:2181
- Configurar cada uno de los kafka para cada uno de ellos tenga un id diferente.
- broker.id=1
- broker.id=2
- broker.id=3
- Configurar el listener con el protocolo: PLAINTEXT y que escuche desde todas las ip
- listener=PLAINTEXT://0.0.0.0:9092
- Configurar para que tenga id automáticos reservando los primeros 1000 como estáticos.
- broker.id.generation.enable=true
- reserved.broker.max.id=1000
- Comprobar que en zookeeper se han registrado automáticamente los brokers
- bin/zkCli.sh -server zookeper_ip:2181
- ls /brokers/ids
- Comprobar que contiene el primer bróker
- get /brokers/ids/1
- Comprobar los topics que tiene, si no tiene crea uno
- ls /brokers/topics
- Comprobar las particiones de ese topic
- ls /brokers/topics/new_topic/partition
- Entrar en el state de la primera partición.
- ls /brokers/topics/new_topic/partition/0/state
- Crear un topic que tenga 2 particiones y un factor de replicación de 1
- bin/kafka–topics.sh ––zookeeper zookeeper_id:2181 ––create ––topic mi_topic ––partitions 2 ––replication–factor 1
- Visualízalo con –describe y explica los datos que devuelve
- bin/kafka–topics.sh ––zookeeper zookeeper_id:2181 –-describe ––topic mi_topic
- Se habrá creado un leader por cada broker. Como no tenemos réplicas nos dice que la réplica está en el broker donde esta el leader y que está en sincronía con sigo mismo.
- Crear un topic con tu nombre_replica que tenga 3 particiones y factor de replicación de 3.
- bin/kafka–topics.sh ––zookeeper zookeeper_id:2181 ––create ––topic mi_topic_3 ––partitions 2 ––replication–factor 3
- Visualiza con –describe y explica los datos que devuelve
- bin/kafka–topics.sh ––zookeeper zookeeper_id:2181 –-describe ––topic mi_topic_2
- Se habra creado un leader en cada broker. Y en replicas nos aparece los id donde hay una réplica. Y todas ellas están en sincronía porque aun no se han producido mensajes.
- Para uno de los servidores de Kafka y vuelve visualizar resultado. Explica los datos que devuelve.
- bin/kafka-server-stop.sh
- bin/kafka–topics.sh ––zookeeper zookeeper_id:2181 –-describe ––topic mi_topic_2
- Cambian los leader porque hay un broker que no está disponible. La sincronía también cambia con los dos broker disponible.
- Levanta el servidores de Kafka y vuelve a visualizar los resultados. Explica los datos que devuelve.
- Se han recuperado las réplicas pero los leaders no se han balanceado. Kafka balancea los leaders cada x tiempo aunque también se puede forzar. Como lo leaders no están balanceados perdemos la alta disponibilidad.
Tag Archives: Kafka
Apache Kafka y Spark Streaming
Creación de Tópicos, Productores y Consumidores
-
- Conectarse a Zoopeker:
- Para comprobar la conexión: bin/zkCli.sh -server localhost:2181
- Conectarse a kafka en segundo plano con daemon:
- Creación de nuevo topics:
- Visualización de los topics existentes:
- Para producir (pantalla de la izquieda) y consumir (pantalla de la derecha) mensajes desde shell (TEST).
Existen dos maneras de producir mensajes:
Esto quedará reflejado en el consumidor con un null o la clave.
- Para producir mensajes desde Spark Streaming (Scala):
- Para consumir mensajes desde Spark Streaming (Scala):
- Conectarse a Zoopeker: