Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)
Managed Airflow sincroniza carpetas específicas en el bucket de tu entorno con los componentes de Airflow que se ejecutan en tu entorno. Consulta Datos almacenados en Cloud Storage para obtener más información. En esta página, se abordan los problemas que podrían interrumpir el proceso de sincronización y cómo solucionarlos.
Problemas comunes
En las siguientes secciones, se describen los síntomas y las posibles soluciones para algunos problemas comunes de sincronización de archivos.
Cómo controlar una gran cantidad de DAG y complementos en las carpetas dags y plugins
El contenido de las carpetas /dags y /plugins se sincroniza desde el bucket de tu entorno con los sistemas de archivos locales de los trabajadores y programadores de Airflow.
Cuantos más datos se almacenen en estas carpetas, más tiempo tardará en realizarse la sincronización. Para abordar estas situaciones, haz lo siguiente:
Limita la cantidad de archivos en las carpetas
/dagsy/plugins. Almacena solo el mínimo de archivos requeridos.Aumenta el espacio en disco disponible para los trabajadores y programadores de Airflow.
Aumenta la CPU y la memoria de los trabajadores y programadores de Airflow para que la operación de sincronización se realice más rápido.
En el caso de una gran cantidad de DAG, divídelos en lotes, comprímelos en archivos ZIP y, luego, implementa estos archivos en la carpeta
/dags. Este enfoque acelera el proceso de sincronización de DAG. Los componentes de Airflow extraen archivos ZIP antes de procesar los DAG.Generar DAG de forma programática también puede ser un método para limitar la cantidad de archivos DAG almacenados en la carpeta
/dags. Consulta la sección DAG programáticos en la página Soluciona problemas de los DAG para evitar problemas con la programación y la ejecución de DAG generados de forma programática.
Antipatrones que afectan la sincronización de DAG y complementos con programadores, trabajadores y servidores web
Managed Airflow sincroniza el contenido de las carpetas /dags y /plugins con los programadores y trabajadores. Ciertos objetos en las carpetas /dags y /plugins pueden impedir que esta sincronización funcione correctamente o ralentizarla.
La carpeta
/dagsse sincroniza con los programadores y trabajadores.Esta carpeta no se sincroniza con el servidor web.
La carpeta
/pluginsse sincroniza con los programadores, trabajadores y servidores web.
Es posible que veas los siguientes problemas:
Subiste archivos comprimidos en gzip que usan la transcodificación de compresión a
/dagsy/pluginscarpetas. Por lo general, esto sucede si usas la marca--gzip-local-allen un comandogcloud storage cppara subir datos al bucket.Solución: Borra el objeto que usó la transcodificación de compresión y vuelve a subirlo al bucket.
Uno de los objetos se llama
.. Ese objeto no se sincroniza con los programadores y trabajadores, y es posible que deje de sincronizarse por completo.Solución: Cambia el nombre del objeto.
Una carpeta y un archivo de Python DAG tienen los mismos nombres, por ejemplo,
a.py. En este caso, el archivo DAG no se sincroniza correctamente con los componentes de Airflow.Solución: Quita la carpeta que tiene el mismo nombre que el archivo de Python DAG.
Uno de los objetos en las carpetas
/dagso/pluginscontiene un símbolo/al final del nombre del objeto. Esos objetos pueden interferir con el proceso de sincronización porque el símbolo/significa que un objeto es una carpeta, no un archivo.Solución: Quita el símbolo
/del nombre del objeto problemático.No almacenes archivos innecesarios en las carpetas
/dagsy/plugins.A veces, los DAG y los complementos que implementas incluyen archivos adicionales, como archivos que almacenan pruebas para estos componentes. Estos archivos se sincronizan con los trabajadores y programadores, y afectan el tiempo necesario para copiarlos en los programadores, trabajadores y servidores web.
Solución: No almacenes archivos adicionales e innecesarios en las carpetas
/dagsy/plugins.
Los trabajadores y los procesadores de DAG generan errores "Is a directory" o "Is a file"
Este problema ocurre porque los objetos pueden tener un espacio de nombres superpuesto en Cloud Storage, mientras que los componentes de Airflow de tu entorno usan sistemas de archivos Linux convencionales. En Cloud Storage, es posible agregar una carpeta y un objeto con el mismo nombre a un bucket. Cuando el bucket se sincroniza con los componentes de Airflow del entorno, se genera un error:
- Si el objeto se sincronizó primero, no se sincronizará el contenido de la carpeta y se generará el error
Is a file. - Si la carpeta se sincronizó primero, el objeto no se sincronizará y se generará el error
Is a directory.
Ejemplo:
Done [Errno 21] Is a directory: '/home/airflow/gcs/dags/...'
Ambos errores pueden provocar fallas en las tareas debido a la falta de archivos. En algunos casos, el proceso de sincronización se puede interrumpir y otros objetos en el bucket del entorno tampoco se sincronizarán.
Solución:
Para solucionar este problema, asegúrate de que no haya espacios de nombres superpuestos en el bucket del entorno.
Por ejemplo, si /dags/misc (un objeto) y /dags/misc/example_file.txt
(otro objeto) están en un bucket, cambia el nombre del objeto misc o de la carpeta
en la que se encuentra example_file.txt para que no haya superposición.
¿Qué sigue?
- Soluciona problemas del procesador de DAG
- Solución de problemas del programador de Airflow
- Soluciona problemas de los DAG