Apache Airflow (二) 環境快速設定

Apache Airflow 2.1.2版本紀錄

官方docker-compose為例

官方在 Running Airflow in Docker提到:

這只是快速開始的一個Docker-Compose版本,若需要正式部署環境,需要了解Docker並從中更改成開發者個人的需求,甚至從頭撰寫一版Docker-Compose供應用場景使用。個人認為是很適合用來在本地練習使用。

若需要易於部署的Docker版本可以到 Airflow Community尋找並配合K8S使用。

開始之前請先安裝好Docker並將記憶體調整到4GB以上,另外舊版本的docker-compose並不支援官方的yaml檔,請先確認版本。

Docker Install

1.Install Docker. Windows Version. Mac OS Version

2.Docker Engine 需使用4~8GB, 建議至少設定到5GB。

3.查詢Docker Memory 目前最大上限:
docker run — rm “debian:buster-slim” bash -c ‘numfmt — to iec $(echo $(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE))))’

4.透過docker run設定最大Memory使用上限,單位可用 k, g, m:
docker run — memory 256m — memory-swap=512m -d <docker_image>

5.透過Docker Desktop 設定:
點右上角齒輪
-> Resources
-> 調整Memory
-> 點選右下角Apply & Restart

download airflow docker-compose

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.1.2/docker-compose.yaml'

設定Airflow User

  1. 建立基本會用到的資料夾 dags logs plugins
  2. Airflow Group ID必為0才有權限
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

DB初始化

DB預設帳號 airflow 密碼 airflow

docker-compose up airflow-init

正式啟動airflow docker-compose

docker-compose up -d

如果一切都順利成功啟動,可以在127.0.0.1:8080看到Airflow UI介面。

在127.0.0.1:5555看到flower 監控 celery任務的介面。

用Cli進入Docker操作Airflow

官方有提供一份shell,可以透過shell 不用下docker command去操作Docker中的Airflow。

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.1.4/airflow.sh'
chmod +x airflow.sh
./airflow.sh info./airflow.sh bash./airflow.sh python

yaml中的environment設定

例如:
AIRFLOW__CORE__LOAD_EXAMPLES: ‘true’
CORE表示config中的core區塊,LOAD_EXAMPLES表示core區塊底下的load_examples設定,若為true則在Airflow UI則會顯示範例資料流,false則不會。

可以將airflow的config檔案mount出來去對照docker-compose.yaml中的environment做設定,若要新增或刪除針對airflow config的設定都要在這裡。

目前的資料夾結構

以上除了官方快速架設環境的簡化版以外也補充了一點點環境設定說明,基本上可以運作了,詳細內容可以上官方文件查詢。

Reference

https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html

--

--