本页面介绍 Cloud Composer 会在 Cloud Storage 中为您的环境存储哪些数据。
当您创建环境时,Cloud Composer 会创建一个 Cloud Storage 存储分区,并将该存储分区关联至您的环境。存储分区的名称取决于环境所在的区域、环境名称和一个随机 ID,例如 us-central1-b1-6efannnn-bucket
。
Cloud Composer 会将工作流 (DAG) 及其依赖项的源代码存储在 Cloud Storage 的特定文件夹中,并使用 Cloud Storage FUSE 将这些文件夹映射到 Cloud Composer 环境中的 Airflow 实例。
Cloud Storage 存储分区中的文件夹
文件夹 | 说明 | 存储路径 | 映射目录 |
---|---|---|---|
DAG | 存储您的环境的 DAG。只有此文件夹中的 DAG 才会被调度用于您的环境。 | gs://bucket-name/dags |
/home/airflow/gcs/dags |
插件 | 存储您的自定义插件,例如自定义内部 Airflow 操作器、钩子、传感器或接口。 | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
数据 | 存储任务生成和使用的数据。此文件夹会装载在所有工作器节点上。 | gs://bucket-name/data |
/home/airflow/gcs/data |
Logs | 存储任务的 Airflow 日志。Airflow 网页界面也可提供日志。 | gs://bucket-name/logs |
/home/airflow/gcs/logs |
容量注意事项
DAG 和插件:默认情况下,Cloud Composer 会为您的环境、dags/
文件夹和 plugins/
文件夹预配 100 GB 容量。
为避免发生工作流故障,请将您的 DAG,插件和 Python 模块存储在 dags/
或 plugins/
文件夹中,即使您的 Python 模块不包含 DAG 或插件也是如此。例如,您应该将 DataFlowPythonOperator
引用的 py_file
存储在 dags/
或 plugins/
中。
数据和日志:data/
文件夹和 logs/
文件夹没有容量限制。
为避免发生 Web 服务器错误,请确保 dags/
文件夹中包含 Web 服务器解析(但不运行)DAG 所需的数据。否则,Web 服务器无法访问该数据或加载 Airflow 网页界面。
数据同步
如果您修改了 Cloud Storage 存储分区中的 DAG 或插件,Cloud Composer 会同步集群中所有节点上的数据。
对于 dags/
和 plugins/
文件夹,Cloud Composer 采用本地复制的方式进行单向同步。单向同步意味着这些文件夹中的本地更改将被覆盖。
对于 data/
和 logs/
文件夹,Cloud Composer 使用 Cloud Storage FUSE 进行双向同步。
由于容量有限,再加上 Web 服务器只会解析而不运行 Cloud Composer 环境中的 DAG,因此数据不会同步到 Web 服务器。 工作器负责运行 DAG。