Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
本页面介绍 Cloud Composer 会为您的环境存储哪些数据 Cloud Storage
当您创建环境时,Cloud Composer 会创建一个 Cloud Storage 存储分区,并将该存储分区关联至您的环境。存储桶的名称取决于环境所在的区域、环境名称和一个随机 ID,例如 us-central1-b1-6efabcde-bucket
。
Cloud Composer 会在 与您的环境中运行的 Airflow 组件相关联。 例如,当您在环境的存储桶中更新包含 Airflow DAG 代码的文件时,Airflow 组件也会收到更新后的版本。Cloud Composer 使用 Cloud Storage FUSE 以进行同步。
Cloud Storage 存储分区中的文件夹
文件夹 | 存储路径 | 映射目录 | 说明 |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
存储您的环境的 DAG。 |
插件 | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
存储您的自定义插件,例如自定义内部 Airflow 操作器、钩子、传感器或接口。 |
数据 | gs://bucket-name/data |
/home/airflow/gcs/data |
存储任务生成和使用的数据。 |
日志 | gs://bucket-name/logs |
/home/airflow/gcs/logs |
存储任务的 Airflow 日志。Airflow 网页界面和 Google Cloud 控制台的日志标签页中也提供日志。 |
Cloud Composer 会同步 dags/
和 plugins/
文件夹
单向。单向同步意味着
Airflow 组件上的文件夹会被覆盖。data/
和 logs/
文件夹会进行双向同步。
数据同步最终将保持一致。如需从一个运算符向另一个运算符发送消息,请使用 XCom。
容量注意事项
dags/
、plugins/
和 data/
文件夹中的数据会同步到 Airflow
调度器和工作器。
plugins/
文件夹的内容会同步到 Airflow Web 服务器。
放入这些文件夹中的数据越多,占用的空间就越多
Airflow 组件的本地存储空间中在以下服务中保存过多数据:
dags/
和plugins/
可能会中断您的运营并导致如下问题:
由于组件的本地磁盘空间不足,工作器或调度程序耗尽了本地存储空间并被驱逐。
将
dags/
和plugins/
文件夹中的文件同步到 worker, 调度程序需要很长时间将
dags/
和plugins/
文件夹中的文件同步到工作器和调度器将变得不可能。例如,您在dags/
文件夹中存储了一个 2 GB 的文件,但 Airflow 工作器的本地磁盘只能容纳 1 GB 的文件。在同步期间,工作器中的本地资源耗尽 无法完成存储和同步。
DAG 和插件文件夹
为避免 DAG 运行失败,请将 DAG、插件和 Python 模块存储在
dags/
或 plugins/
文件夹,即使您的 Python 模块不包含 DAG
或插件。
例如,您使用引用 py_file
Dataflow 流水线的 DataFlowPythonOperator
。py_file
不包含 DAG,或者
但您仍必须将其存储在 dags/
或 plugins/
文件夹中。
数据文件夹
在某些情况下,data/
文件夹中的某些文件会同步到特定 Airflow 组件。例如,在以下情况下,Cloud Composer 会首次尝试读取给定文件:
DAG 解析:在 DAG 解析期间首次读取文件时, Cloud Composer 会将其同步到解析 DAG 的调度器。
DAG 执行:在 DAG 执行期间首次读取文件时,Cloud Composer 会将其同步到正在执行该操作的工作器。
Airflow 组件的本地存储空间有限,因此请考虑删除已下载的文件,以释放组件中的磁盘空间。请注意,如果您有并发任务将同一文件下载到单个 Airflow 工作器,本地存储空间用量也可能会暂时增加。
日志文件夹
logs/
文件夹会从 Airflow 工作器同步到环境的
使用 Cloud Storage API 存储存储桶。
Cloud Storage API 配额按移动的数据量计算, 系统运行的 Airflow 任务数量可能会增加, 您的 Cloud Storage API 用量:运行的任务越多,日志越大 文件。
与 Web 服务器同步
plugins/
文件夹会自动同步到 Web 服务器,
可以通过 Airflow 界面加载插件。在 Cloud Composer 3 中,您可以执行以下操作:
停用和启用 Web 服务器插件
而无需从环境存储桶中删除文件。