apache kafka - ¿Cómo ejecutar un trabajador de Kafka connect en YARN?
apache-kafka apache-kafka-connect (1)
Estoy jugando con Kafka-Connect . Tengo el HDFS connector
funcionando tanto en modo independiente como en modo distribuido .
advertise que los trabajadores (que son responsables de ejecutar los conectores) se pueden administrar a través de YARN
Sin embargo, no he visto ninguna documentación que describa cómo lograr este objetivo.
¿Cómo hago para que YARN
ejecute a los trabajadores? Si no hay un enfoque específico, ¿hay YARN
genéricas sobre cómo hacer que una aplicación se ejecute dentro de YARN
?
Sin embargo, he usado YARN
con SPARK mediante el uso de spark-submit
, no puedo averiguar cómo hacer que el conector se ejecute en YARN
.
Teóricamente puedes ejecutar cualquier cosa en YARN, incluso un simple programa hello world. Es por eso que decir que Kafka-Connect se ejecuta en YARN es técnicamente correcto. La advertencia es que conseguir que Kafka-Connect funcione con YARN requerirá una buena cantidad de grasa en el codo en este momento. Hay dos maneras de hacerlo:
- Hable directamente con la API de YARN para adquirir un contenedor, implementar los binarios de Kafka-Connect y lanzar Kafka-Connect.
- Use el proyecto Slider separado https://slider.incubator.apache.org/docs/getting_started.html que Stephane ya ha mencionado en los comentarios.
Deslizador
Tendrá que leer un poco de documentación para que funcione, pero la idea detrás de Slider es que puede hacer que cualquier programa se ejecute en YARN sin tener que lidiar con la API de YARN y escribir un maestro de la aplicación YARN haciendo lo siguiente:
- Crea un paquete deslizante fuera de tu programa
- Defina una configuración para su paquete
- Use el control deslizante para desplegar su aplicación en YARN
El control deslizante maneja la implementación del contenedor y la recuperación de los contenedores con fallas para usted, lo cual es bueno. Además, Slider se está convirtiendo en una parte nativa de YARN cuando se lanza YARN 3.0.
Alternativas
También como nota al margen, lograr que Kafka-Connect se despliegue en Kubernetes o Mesos / Marathon probablemente sea más fácil. El flujo de trabajo básico para hacer eso sería:
- Cree un contenedor acoplable Kafka-Connect o simplemente use el contenedor acoplable confluente
- Crea una configuración de despliegue para Kubernetes o Marathon.
- Haga clic en un botón / ejecute un comando