es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es posible en Airflow ejecutar una tarea única en múltiples nodos de trabajador, es decir, ejecutar una tarea de manera distribuida?

Estoy utilizando Spring Batch para crear un flujo de trabajo de trabajos por lotes. El trabajo por lotes individual tarda 2 horas en completarse (datos a procesar ~1 millón), así que decidí ejecutarlo de manera distribuida donde una tarea se distribuirá en múltiples nodos de trabajo, de esa manera se puede ejecutar en poco tiempo. Los otros trabajos (todos trabajan de manera distribuida) en el flujo de trabajo necesitan ejecutarse de manera secuencial, uno tras otro. Los trabajos son trabajos distribuidos de varios nodos (arquitectura maestro/esclavo) que deben ejecutarse uno tras otro.

Ahora, estaba considerando desplegar el flujo de trabajo en Airflow. Así que, al explorarlo, no pude encontrar ninguna manera de ejecutar una sola tarea que se distribuya en varias máquinas. ¿Es posible en Airflow?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Kubernetes, Celery y Airflow, puedo decir que es posible ejecutar una tarea única que se distribuye en varios dispositivos en Airflow.

    Para lograr esto, puedes utilizar CeleryExecutor de Airflow, lo que permite la ejecución de tareas distribuidas aprovechando a Celery como su executor. Celery distribuye tareas a nodos de trabajadores, y a cada nodo se le asigna una tarea que se ejecuta simultáneamente.

    Para configurarlo, debes establecer el ambiente de Airflow con las configuraciones correctas, incluyendo la URL del broker de Celery y la URL para el resultado de Celery. Luego, puedes crear tareas que utilicen Celery como el executor para aprovechar la ejecución distribuida.

    En tu caso específico, puedes crear una tarea que se distribuya en varios nodos de trabajadores y configurarla para que se ejecute en un orden específico con otras tareas en el flujo de trabajo. Al utilizar el CeleryExecutor en Airflow, puedes capacitar la ejecución de tareas distribuidas y aprovechar los beneficios de la distribución de carga para completar tus trabajos más rápido.

Comments are closed.