簡介
Airflow可以透過多種方式部署。在本文中,我們將展示如何使用Docker Compose來部署Airflow。
先決條件
- 請確保環境中已安裝Docker CE、Docker Desktop或OrbStack。
- 確保Docker Compose的版本為
v2.14.0
或更新版本。 - 安裝環境需要至少4GB的RAM。
下載設定檔案
要使用Docker Compose部署Airflow,首先需要取得設定檔案(docker-compose.yaml
)。該檔案可從Airflow官網下載,或者可以使用以下curl
命令來下載:
|
|
組成
此設定文件包含多個Airflow所需要的組件:
airflow-scheduler
- 調度器監控所有任務和 DAG,並在其依賴關係完成後觸發任務實例。airflow-webserver
- Airflow網頁伺服器,預設可藉由http://localhost:8080
連線。airflow-worker
- 執行由調度器分配任務的工作者。airflow-triggerer
- 為可延遲的任務運行事件循環的觸發器。airflow-init
- 初始化服務。postgres
- 資料庫。redis
- 將訊息從調度器轉發到工作者的代理。
啟動Airflow服務
預設情況下,該設定文件將使用 CeleryExecutor
啟動Airflow服務,並將一些目錄綁定到容器中。我們可以通過在.env
檔案中宣告AIRFLOW_PROJ_DIR
環境變數來配置要綁定的根目錄。如果未宣告AIRFLOW_PROJ_DIR
,腳本會將執行docker-compose
指令的目錄綁定到容器,並自動產生包含以下子目錄:
dags
: 可以將DAG
檔案放在此處。logs
: 包含任務執行和調度器的日誌。config
: 可以添加自定義日誌解析器或airflow_local_settings.py
來配置集群策略。plugins
: 可以將自定義插件放在此處。
在啟動服務之前,需要將以下內容添加到.env
檔案中,才能正常運作:
|
|
然後,使用以下命令啟動服務:
|
|
預設情況下,Airflow的網頁介面可透過http://localhost:8080
連線。
設定教學
設定Airflow容器映像檔版本
預設情況下,腳本將從Docker Hub中拉取v2.10.0
映像檔案。要更改此設定,可以在.env
檔案中添加以下環境變數:
|
|
使用Flower對Celery進行監控
預設情況下,Flower
功能不會啟用。我們可以通過以下命令啟用Flower
:
|
|
或是
|
|
Flower
的網頁將可通過http://localhost:5555
連線。
使用自定義容器映像檔
在啟動服務的同時進行自訂義容器的建構
當使用
Docker Compose
時,可以在啟動容器時構建映像,而不是先構建映像並指定給Docker Compose
使用。請參閱Docker Compose文件來進行設定。預先建構自定義容器映像檔
我們可以先構建所需的映像,然後通過
AIRFLOW_IMAGE_NAME
環境變數進行設定。
清理環境
若要關閉Airflow服務,並清理環境,可以執行以下的指令來清理自動產生的資料以及未被使用的容器:
|
|