Apache Kafka C8

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

Herramientas de Kafka

En este último capítulo, exploraremos las herramientas disponibles en Kafka y su integración


con herramientas de terceros. También discutiremos brevemente el trabajo que se está
llevando a cabo en el área de pruebas de rendimiento de Kafka.

Las principales áreas de enfoque para este capítulo son:

- Herramientas de administración de Kafka

- Integración con otras herramientas

- Pruebas de rendimiento de Kafka

Herramientas de administración de Kafka

Hay una serie de herramientas o utilidades proporcionadas por Kafka 0.8 para administrar
características como la replicación y la creación de temas. Echemos un vistazo a estas
herramientas.

Herramientas de temas de Kafka

Por defecto, Kafka crea el topic con un número de particiones y un factor de replicación por
defecto (el valor por defecto es 1 para ambos). Pero en los escenarios de la vida real, podemos
necesitar definir el número de particiones y los factores de replicación más de una vez.

El siguiente es el comando para crear el tema con parámetros específicos:


[root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper
localhost:2181 --replica 3 --partition 2 --topic kafkatopic

Kafka también proporciona la utilidad para encontrar la lista de temas dentro del servidor
Kafka. La herramienta List Topic proporciona el listado de temas y la información sobre sus
particiones, réplicas o líderes consultando a ZooKeeper.

El siguiente es el comando para obtener la lista de temas:


[root@localhost kafka-0.8]#bin/kafka-list-topic.sh --zookeeper
localhost:2181

Al ejecutar el comando anterior, deberías obtener una salida como la que se muestra en la
siguiente captura de pantalla:
La salida de la consola anterior muestra que podemos obtener la información sobre el tema y
las particiones que tienen datos replicados. La salida de la captura de pantalla anterior se
puede explicar como sigue:

 leader es un nodo seleccionado aleatoriamente para una porción específica de las


particiones y es responsable de todas las lecturas y escrituras para esta partición
 replicas representa la lista de nodos que mantienen el registro para una partición
específica
 isr representa el subconjunto de la lista de réplicas sincronizadas que está actualmente
vivo y sincronizado con el líder

Nótese que kafkatopic tiene dos particiones (particiones 0 y 1) con tres réplicas, mientras que
othertopic sólo tiene una partición con dos réplicas.

Herramientas de replicación de Kafka

Para una mejor gestión de las funciones de replicación, Kafka proporciona herramientas para
seleccionar un líder de réplica y controlar el cierre de los corredores.

Como hemos aprendido del diseño de Kafka, en la replicación, múltiples particiones pueden
tener datos replicados, y de estas múltiples réplicas, una réplica actúa como líder, y el resto de
las réplicas actúan como seguidores sincronizados de la réplica líder. En caso de que una
réplica principal no esté disponible, tal vez debido al cierre del broker, es necesario seleccionar
una nueva réplica principal.

En escenarios como el cierre del broker de Kafka por actividad de mantenimiento, la elección
del nuevo líder se realiza de forma secuencial, y esto provoca importantes operaciones de
lectura y escritura en ZooKeeper. En cualquier clúster grande con muchas topicspartitions, la
elección secuencial de las réplicas líderes provoca un retraso en la disponibilidad.

Para garantizar una alta disponibilidad, Kafka proporciona herramientas para un cierre
controlado de los brokers de Kafka. Si el broker tiene la partición principal apagada, esta
herramienta transfiere el liderazgo de forma proactiva a otras réplicas en sincronía en otro
broker. Si no hay ninguna réplica sincronizada disponible, la herramienta no cerrará el broker
para garantizar que no se pierdan datos.

El siguiente es el formato para utilizar esta herramienta:


[root@localhost kafka-0.8]# bin/kafka-run-class.sh kafka.admin.
ShutdownBroker --zookeeper <zookeeper_host:port/namespace> --broker
<brokerID>

El host de ZooKeeper y el ID del broker que hay que apagar son parámetros obligatorios.
También podemos especificar el número de reintentos (--num.retries, valor por defecto 0) y el
intervalo de reintentos en milisegundos (--retry.interval.ms, valor por defecto 1000) con una
herramienta de apagado controlado.

A continuación, en cualquier clúster Kafka grande con muchos brokers y temas, Kafka se
asegura de que las réplicas principales para las particiones se distribuyan equitativamente
entre los brokers. Sin embargo, en caso de apagado (también controlado) o de fallo del broker,
esta distribución equitativa de las réplicas principales puede desequilibrarse dentro del clúster.

Kafka proporciona una herramienta que se utiliza para mantener la distribución equilibrada de
las réplicas principales dentro del cluster de Kafka entre los brokers disponibles.
El siguiente es el formato para utilizar esta herramienta:
[root@localhost kafka-0.8]# bin/kafka-preferred-replica-election.sh
--zookeeper <zookeeper_host:port/namespace>

Esta herramienta recupera todas las particiones de temas para el clúster desde ZooKeeper.
También podemos proporcionar la lista de particiones de temas en formato de archivo JSON.
Funciona de forma asíncrona para actualizar la ruta de ZooKeeper para mover el líder de las
particiones y crear una distribución equilibrada.

Para obtener una explicación detallada sobre las herramientas de Kafka y su uso, consulte
https:/cwiki.apache.orgconfluencedisplay KAFKAReplication+tools.

Integración con otras herramientas

En esta sección se habla de las contribuciones de muchos colaboradores, que proporcionan


integración con Apache Kafka para diversas necesidades como el registro, el empaquetado, la
integración en la nube y la integración con Hadoop.

Camus (https:/github.comlinkedincamus) es otro arte del trabajo realizado por LinkedIn, que
proporciona una tubería de Kafka a HDFS. Bajo este proyecto, un solo trabajo MapReduce
realiza los siguientes pasos para cargar los datos a HDFS de forma distribuida:

1. Como primer paso, descubre los últimos temas y offsets de partición desde ZooKeeper.

2. Cada tarea en el trabajo MapReduce obtiene los eventos del broker Kafka y consigna los
datos extraídos junto con el recuento de auditoría en las carpetas de salida.

3. Después de la finalización del trabajo, las compensaciones finales se escriben en HDFS, que
pueden ser consumidas por trabajos MapReduce posteriores.

4. La información sobre los mensajes consumidos también se actualiza en el clúster Kafka.

Algunas otras contribuciones útiles son:

- Despliegue y configuración automatizada de Kafka y ZooKeeper en Amazon


(https:/github.comnathanmarzkafka-deploy)

- Utilidad de registro (https:/github.comleandrosilvaklogd2)

- Servicio REST para Mozilla Matrics (https:/github.commozilla-metrics bagheera)

- Integración Apache Camel-Kafka (https:/github.comBreizhBeans camel-kafkawiki)

Para obtener una lista detallada de las herramientas del ecosistema Kafka, consulte
https:/cwiki.apache.orgconfluencedisplay KAFKAEcosystem.

Pruebas de rendimiento de Kafka

Los colaboradores de Kafka siguen trabajando en las pruebas de rendimiento, y su objetivo es


producir una serie de archivos de script que ayuden a ejecutar las pruebas de rendimiento.
Algunos de ellos se encuentran en la carpeta Kafka bin:

- Kafka-producer-perf-test.sh: Este script ejecutará la clase kafka.perf. ProducerPerformance


para producir las estadísticas incrementadas en un archivo CSV para los productores
- Kafka-consumer-perf-test.sh: Este script ejecutará la clase kafka.perf. ConsumerPerformance
para producir las estadísticas incrementadas en un archivo CSV para los consumidores

Se proporcionan algunos scripts más para extraer las estadísticas del servidor Kafka y de
ZooKeeper en formato CSV. Una vez producidos los archivos CSV, se puede crear el script de R
para producir las imágenes de los gráficos.

Para obtener información detallada sobre cómo realizar las pruebas de rendimiento de Kafka,
consulte https:/cwiki.apache.orgconfluence displayKAFKAPerformance+testing.

Resumen

En este capítulo, hemos añadido algo más de información sobre Kafka, como sus herramientas
de administrador, su integración y los clientes Kafka no-Java.

Durante este completo viaje por Apache Kafka, hemos tocado muchos datos importantes
sobre Kafka. Hemos aprendido la razón por la que se desarrolló Kafka, su instalación, y su
soporte para diferentes tipos de clusters. También hemos explorado el enfoque de diseño de
Kafka, y hemos escrito algunos productores y consumidores básicos.

Al final, discutimos su integración con tecnologías como Hadoop y Storm.

El viaje de la evolución nunca termina.

También podría gustarte