Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se describe qué datos almacena Cloud Composer en Cloud Storage para tu entorno.
Cuando creas un entorno, Cloud Composer crea un segmento de Cloud Storage y lo asocia a tu entorno. El nombre del segmento se basa en la región, el nombre y un ID aleatorio del entorno, como us-central1-b1-6efabcde-bucket
.
Cloud Composer sincroniza carpetas específicas del bucket de tu entorno con los componentes de Airflow que se ejecutan en tu entorno. Por ejemplo, cuando actualizas un archivo con el código de tu DAG de Airflow en el segmento del entorno, los componentes de Airflow también reciben la versión actualizada. Cloud Composer usa Cloud Storage FUSE para la sincronización.
Carpetas del segmento de Cloud Storage
Carpeta | Ruta de almacenamiento | Directorio asignado | Descripción |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Almacena los DAGs de tu entorno. |
Complementos | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Almacena tus complementos personalizados, como operadores, ganchos, sensores o interfaces de Airflow internos personalizados. |
Datos | gs://bucket-name/data |
/home/airflow/gcs/data |
Almacena los datos que producen y usan las tareas. |
Registros | gs://bucket-name/logs |
/home/airflow/gcs/logs |
Almacena los registros de Airflow de las tareas. Los registros también están disponibles en la interfaz web de Airflow y en la pestaña Registros de la consola de Google Cloud . |
Cloud Composer sincroniza las carpetas de forma unidireccional: del cubo a los componentes de Airflow. La sincronización unidireccional significa que los cambios locales en estas carpetas de un componente de Airflow se sobrescriben.
La sincronización de datos acaba siendo coherente. Para enviar mensajes de un operador a otro, usa XComs.
Consideraciones sobre la capacidad
Los datos de las carpetas dags/
, plugins/
y data/
se sincronizan con los programadores y los trabajadores de Airflow.
En Airflow 2, el contenido de la carpeta plugins/
también se sincroniza con el servidor web de Airflow. En Airflow 1, el contenido de las carpetas dags/
y plugins/
se sincroniza con el servidor web de Airflow solo si la serialización de DAGs está desactivada.
De lo contrario, no se realiza la sincronización.
Cuantos más datos se introduzcan en estas carpetas, más espacio ocuparán en el almacenamiento local de los componentes de Airflow. Si guardas demasiados datos en dags/
y plugins/
, tus operaciones pueden verse afectadas y pueden surgir problemas como los siguientes:
Un trabajador o un programador se queda sin almacenamiento local y se expulsa porque no hay suficiente espacio en el disco local del componente.
La sincronización de archivos de las carpetas
dags/
yplugins/
con los trabajadores y los programadores tarda mucho tiempo.Se vuelve imposible sincronizar archivos de las carpetas
dags/
yplugins/
con los trabajadores y los programadores. Por ejemplo, almacenas un archivo de 2 GB en la carpetadags/
, pero el disco local de un trabajador de Airflow solo puede alojar 1 GB. Durante la sincronización, el trabajador se queda sin almacenamiento local y no se puede completar la sincronización.
Carpetas de DAGs y complementos
Para evitar errores en las ejecuciones de DAGs, almacena tus DAGs, complementos y módulos de Python en las carpetas dags/
o plugins/
, aunque tus módulos de Python no contengan DAGs ni complementos.
Por ejemplo, usas un DataFlowPythonOperator
que hace referencia a un py_file
flujo de procesamiento de Dataflow. Ese py_file
no contiene DAGs ni complementos, pero debes almacenarlo en la carpeta dags/
o plugins/
.
Carpeta de datos
Hay casos en los que determinados archivos de la carpeta data/
se sincronizan con un componente específico de Airflow. Por ejemplo, cuando Cloud Composer intenta leer un archivo determinado por primera vez durante:
Análisis de DAGs: cuando se lee un archivo por primera vez durante el análisis de DAGs, Cloud Composer lo sincroniza con el programador que analiza el DAG.
Ejecución de DAG: cuando se lee un archivo por primera vez durante la ejecución de un DAG, Cloud Composer lo sincroniza con el trabajador que ejecuta el DAG.
Los componentes de Airflow tienen un almacenamiento local limitado, por lo que te recomendamos que elimines los archivos descargados para liberar espacio en disco en tus componentes. Ten en cuenta que el uso del almacenamiento local también puede aumentar temporalmente si tienes tareas simultáneas que descargan el mismo archivo en un solo trabajador de Airflow.
Carpeta de registros
La carpeta logs/
se sincroniza desde los trabajadores de Airflow con el segmento del entorno mediante la API de Cloud Storage.
La cuota de la API Cloud Storage se calcula en función de la cantidad de datos transferidos, por lo que el número de tareas de Airflow que ejecute tu sistema puede aumentar el uso de la API Cloud Storage: cuantas más tareas ejecutes, más grandes serán tus archivos de registro.
Sincronización con el servidor web
Airflow 2 usa la serialización de DAG de forma predeterminada. La carpeta plugins/
se sincroniza automáticamente con el servidor web para que la interfaz de usuario de Airflow pueda cargar los complementos. No puedes desactivar la serialización de DAGs en Airflow 2.
En Airflow 1, se admite la serialización de DAGs y está activada de forma predeterminada en Cloud Composer.
- Si la serialización de DAG está activada, los archivos de las carpetas
dags/
yplugins/
no se sincronizan con el servidor web. - Cuando la serialización de DAG está desactivada, los archivos de
dags/
yplugins/
se sincronizan con el servidor web.