Airflow 3のメモ
はじめに
airflow_2で導入したApache Airflowでメジャーアップデートがありました。 下記のような機能が追加されたようです。
- ReactベースのモダンなUI
- DAGのバージョン管理
- バックフィルの改善
また、Airflow 2で非推奨となっていた一部の機能が削除されているため、移行時にはDAGの更新が必要になる場合があります。
インストール
今回はDockerを利用してAirflowを動作させます。 公式が手順を公開しているのでこちらを参考にします。
# ディレクトリの作成
mkdir airflow
cd airflow
# docker-compose.yamlのダウンロード
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.0.1/docker-compose.yaml'
# Airflowで利用するディレクトリ等の作成
mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env
# airflow.cfgの初期化
docker compose run airflow-cli airflow config list
# DBの初期化
docker compose up airflow-init
# Airflowの起動
docker compose up
Airflowにアクセス
Airflowはhttp://localhost:8080
で提供されています。
認証が必要ですが、初期設定は下記のとおりです。
- Username: airflow
- Password: airflow
Executorの変更
手順通りにインストールした場合、AirflowのExcecutorはCeleryExecutor
になっていると思います。
Celeryは分散タスクキューシステムを利用して、タスクを複数のワーカーに非同期で並列に実行させることができます。
スケーラブルで高性能なため、大量のタスクがある環境では有用ですが個人利用の場合システムリソースも多く利用するため、より軽量なものに変更したいと思います。
今回は、LocalExecutor
を利用します。
LocalExecutor
はタスクをローカルマシン上するものです。
docker-compose.yaml
のAIRFLOW__CORE__EXECUTOR
でLocalExecutor
を指定すると変更できます。
他にも不要な設定が残っているので、下記の項目を削除します。
- AIRFLOW__CELERY__RESULT_BACKEND
- AIRFLOW__CELERY__BROKER_URL
- depends_onのredis部分
- Service
- redis
- airflow-worker
- flower
設定変更が完了したら、下記のコマンドで再度起動します。
docker compose down
docker compose up -d --build