Escalado con Apio¶
CeleryExecutor
es una de las formas de reducir el número de trabajadores. Para este trabajo, debe configurar un motor de Apio (RabbitMQ, Redis, Red) y cambiar su airflow.cfg
para apuntar el parámetro ejecutor aCeleryExecutor
y proporcionar la configuración de Apio relacionada.
Para obtener más información sobre cómo configurar un corredor de apio, consulte la documentación exhaustiva sobre apio sobre el tema.
Estos son algunos requisitos imperativos para sus trabajadores:
-
airflow
necesita ser instalado, y la CLI debe estar en la ruta -
Los ajustes de configuración del flujo de aire deben ser homogéneos en todo el clúster
-
Los operadores que se ejecutan en el trabajador deben tener sus dependencias en ese contexto. Por ejemplo, si usa
HiveOperator
, la CLI de hive debe instalarse en esa caja, o si usaMySqlOperator
, la biblioteca de Python requerida debe estar disponible enPYTHONPATH
de alguna manera -
El trabajador necesita tener acceso a su
DAGS_FOLDER
, y necesita sincronizar los sistemas de archivos por sus propios medios. Una configuración común sería almacenar su carpeta DAGS en un repositorio Git y sincronizarla entre máquinas que usen Chef, Puppet, Ansible o lo que sea que use para configurar máquinas en su entorno. Si todas sus cajas tienen un punto de montaje común, compartir sus archivos de líneas de transmisión allí también debería funcionar
Para poner en marcha a un trabajador, debe configurar el flujo de aire y poner en marcha el comando de trabajo
airflow worker
Su trabajador debe comenzar a recoger tareas tan pronto como las despidan en su dirección.
Tenga en cuenta que también puede ejecutar “Flor de apio”, una interfaz de usuario web construida sobre Apio,para monitorear a sus trabajadores. Puede usar el comando de acceso directo airflow flower
para iniciar un servidor web de Flores.
Tenga en cuenta que debe tener la biblioteca flower
de python ya instalada en su sistema. La forma recomendada es instalar el paquete de apio de flujo de aire.
pip install 'apache-airflow'
Algunas advertencias:
-
Asegúrese de usar un motor de resultados respaldado por una base de datos
-
Asegúrese de establecer un tiempo de espera de visibilidad que exceda el tiempo estimado de LLEGADA de su tarea de mayor duración
-
Las tareas pueden consumir recursos. Asegúrese de que su trabajador tenga suficientes recursos para ejecutar tareas de worker_concurrency
-
Los nombres de cola están limitados a 256 caracteres, pero cada backend de corredor puede tener sus propias restricciones