Datos almacenados en Cloud Storage

Cloud Composer 1 | Cloud Composer 2

En esta página, se describe qué datos almacena Cloud Composer para tu entorno en Cloud Storage.

Cuando creas un entorno, Cloud Composer crea un bucket de Cloud Storage y lo asocia a tu entorno. El nombre del bucket se basa en la región, el nombre y un ID aleatorio del entorno, como us-central1-b1-6efannnn-bucket.

Cloud Composer espera el código fuente para tus flujos de trabajo (DAG) y sus dependencias en carpetas específicas de Cloud Storage y usa Cloud Storage FUSE para asignar las carpetas a los componentes de Airflow en tu entorno de Cloud Composer.

Carpetas en el bucket de Cloud Storage

Carpeta Ruta de almacenamiento Directorio asignado Descripción
DAG gs://bucket-name/dags /home/airflow/gcs/dags Almacena DAG para tu entorno. Solo los DAG de esta carpeta están programados para tu entorno.
Complementos gs://bucket-name/plugins /home/airflow/gcs/plugins Almacena tus complementos personalizados, como operadores, hooks, interfaces o sensores personalizados internos de Airflow.
Datos gs://bucket-name/data /home/airflow/gcs/data Almacena los datos que las tareas producen y usan. Esta carpeta se activa en todos los nodos trabajadores.
Registros gs://bucket-name/logs Almacena los registros de Airflow para las tareas. Los registros también están disponibles en la interfaz web de Airflow y en la pestaña Registros de la IU de Cloud Composer.

Consideraciones de capacidad

Los datos de las carpetas dags/, plugins/ y data/ se sincronizan con los programadores y 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, las carpetas de contenido dags/ y plugins/ se sincronizan con el servidor web de Airflow solo si la serialización de DAG está desactivada. De lo contrario, la sincronización no se realiza.

Cuantos más datos se coloquen en estas carpetas, más espacio se ocupará en el almacenamiento local de los componentes de Airflow. Guardar demasiados datos en dags/ y plugins/ puede interrumpir las operaciones y generar los siguientes problemas:

  • un trabajador o un programador se queda sin almacenamiento local y se expulsa debido a que no hay suficiente espacio en el disco local del componente

  • La sincronización de archivos de las carpetas dags/ y plugins/ con los trabajadores y programadores lleva mucho tiempo.

  • Sincronizar archivos de las carpetas dags/ y plugins/ con trabajadores y programadores resulta imposible. Por ejemplo, almacenas un archivo de 2 GB en la carpeta dags/, pero el disco local de tu componente solo puede alojar 1 GB. Durante la sincronización, tu componente se queda sin almacenamiento local y no se puede completar la sincronización.

DAG y complementos

Para evitar fallas en el flujo de trabajo, almacena los DAG, los complementos y los módulos de Python en las carpetas dags/ o plugins/, incluso si los módulos de Python no contienen DAG ni complementos.

Por ejemplo, usa una DataFlowPythonOperator que haga referencia a una canalización de Dataflow py_file. Ese py_file no contiene DAG ni complementos, pero aun así deberías almacenarlo en la carpeta dags/ o plugins/.

Datos

Hay situaciones en las que ciertos 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 DAG Cuando un archivo se lee por primera vez durante el análisis del DAG, Cloud Composer lo sincroniza con el programador que analiza el DAG.

  • Ejecución de DAG Cuando un archivo se lee por primera vez durante la ejecución del DAG, Cloud Composer lo sincroniza con el trabajador que ejecuta la ejecución.

Los componentes de Airflow tienen almacenamiento local limitado, por lo que debes considerar borrar los archivos descargados para liberar espacio en el disco en tus componentes. Ten en cuenta que el uso del almacenamiento local también puede aumentar de forma temporal si tienes tareas simultáneas que descargan el mismo archivo en un solo trabajador de Airflow.

Registros

La carpeta logs/ se sincroniza de los trabajadores de Airflow al bucket mediante la API de Cloud Storage.

La cuota de la API de Cloud Storage se calcula según la cantidad de datos transferidos, por lo que la cantidad de tareas de Airflow que ejecuta tu sistema puede aumentar el uso de la API de Cloud Storage: cuantas más tareas ejecutes, más grandes serán los archivos de registro.

Carpetas del servidor web, dags/, plugins/ y data/

  • Airflow 2 usa la serialización de DAG desde el primer momento. La carpeta plugins/ se sincroniza automáticamente con el servidor web para que la IU de Airflow pueda cargar los complementos. No puedes desactivar la serialización de DAG en Airflow 2.

  • En Airflow 1, la serialización de DAG es compatible y está activada de forma predeterminada en Cloud Composer.

    • Cuando la serialización de DAG está activada, los archivos de las carpetas dags/ y plugins/ no se sincronizan con el servidor web.
    • Cuando la serialización de DAG se desactiva, los archivos de dags/ y plugins/ se sincronizan con el servidor web.

Sincronización de datos

Cuando modificas DAG o complementos en el bucket de Cloud Storage, se sincronizan los datos en todos los nodos del clúster.

Cloud Composer sincroniza las carpetas dags/ y plugins/ de forma unidireccional mediante la copia local. La sincronización unidireccional indica que los cambios locales en estas carpetas se reemplazan.

Las carpetas data/ y logs/ se sincronizan de forma bidireccional con Cloud Storage FUSE.

Diferencias entre Cloud Composer 1 y Cloud Composer 2

Cloud Composer 1 y Cloud Composer 2 asignan diferentes cantidades de CPU y memoria a los componentes que realizan la sincronización de datos.

Según tu configuración, la velocidad de la sincronización de contenido para las carpetas dags/, plugins/ y data/ entre el bucket de Cloud Storage y los componentes de Airflow puede diferir si comparas Cloud Composer 1 con Cloud Composer 2.

¿Qué sigue?