Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面說明 Cloud Composer 會在 Cloud Storage 中為環境儲存的資料。
當您建立環境時,Cloud Composer 會建立 Cloud Storage 值區,並將該值區與您的環境建立關聯。值區的名稱是由環境地區、名稱和一組隨機 ID 組成,例如 us-central1-b1-6efabcde-bucket
。
Cloud Composer 會將環境值區中的特定資料夾,同步至環境中執行的 Airflow 元件。舉例來說,在環境的 bucket 中更新 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 |
儲存您的自訂外掛程式,例如自訂內部 Apache Airflow 運算子、掛鉤、感應器或介面。 |
資料 | gs://bucket-name/data |
/home/airflow/gcs/data |
儲存工作產生和使用的資料。 |
記錄 | gs://bucket-name/logs |
/home/airflow/gcs/logs |
儲存工作的 Airflow 記錄。記錄也可透過 Airflow 網頁介面查看,以及在 Google Cloud 控制台的「記錄」分頁中查看。 |
Cloud Composer 會單向同步處理資料夾:從 Bucket 同步到 Airflow 元件。單向同步處理表示在本機對 Airflow 元件上的這些資料夾所做的變更會遭到覆寫。
資料同步處理具有最終一致性。如要在運算子之間傳送訊息,請使用 XComs。
容量注意事項
dags/
、plugins/
和 data/
資料夾中的資料會同步至 Airflow 排程器和工作站。
plugins/
資料夾的內容會同步至 Airflow 網路伺服器。
這些資料夾中的資料越多,Airflow 元件本機儲存空間的占用量就越大。在 dags/
和 plugins/
中儲存過多資料可能會中斷作業,並導致下列問題:
工作站或排程器本機儲存空間不足,因此遭到逐出,原因是元件本機磁碟空間不足。
從
dags/
和plugins/
資料夾將檔案同步到工作站和排程器需要很長時間。無法將
dags/
和plugins/
資料夾中的檔案同步到工作人員和排程器。舉例來說,您在dags/
資料夾中儲存 2 GB 的檔案,但 Airflow 工作站的本機磁碟只能容納 1 GB。同步處理期間,工作人員的本機儲存空間不足,導致同步作業無法完成。
DAG 和外掛程式資料夾
為避免 DAG 執行失敗,請將 DAG、外掛程式和 Python 模組儲存在 dags/
或 plugins/
資料夾中,即使 Python 模組未包含 DAG 或外掛程式也一樣。
舉例來說,您使用 DataFlowPythonOperator
參照 py_file
Dataflow 管道。該 py_file
不含 DAG 或外掛程式,但您仍須將其儲存在 dags/
或 plugins/
資料夾中。
資料夾
在某些情況下,data/
資料夾中的特定檔案會同步至特定 Airflow 元件。舉例來說,當 Cloud Composer 首次嘗試讀取特定檔案時:
剖析 DAG:在剖析 DAG 期間首次讀取檔案時,Cloud Composer 會將檔案同步到剖析 DAG 的排程器。
DAG 執行:在 DAG 執行期間首次讀取檔案時,Cloud Composer 會將檔案同步到執行作業的工作人員。
Airflow 元件的本機儲存空間有限,因此建議刪除下載的檔案,以釋出元件的磁碟空間。請注意,如果您有多項工作同時將相同檔案下載至單一 Airflow 工作站,本機儲存空間用量也可能會暫時增加。
記錄資料夾
Airflow 工作站會使用 Cloud Storage API,將 logs/
資料夾同步至環境的值區。
Cloud Storage API 配額是根據移動的資料量計算,因此系統執行的 Airflow 工作數量可能會增加 Cloud Storage API 用量:執行的工作越多,記錄檔就越大。
與網路伺服器同步
plugins/
資料夾會自動同步處理至網路伺服器,以便 Airflow UI 載入外掛程式。在 Cloud Composer 3 中,您可以視需要停用及啟用網路伺服器外掛程式,不必從環境的 bucket 刪除檔案。