2021年8月26日木曜日

Airflow 超入門

Airflow 超入門

概要

Apache Airflow は Python 製のジョブスケジューラです
今回はインストール方法と簡単な使い方を紹介します

環境

  • macOS 11.5
  • docker 20.10.7
  • Airflow 2.1.2

docker-compose ファイルのダウンロード

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

データ保存用のディレクトリ作成

  • mkdir ./dags ./logs ./plugins

env ファイルの作成

  • echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

初期化

  • docker-compose up airflow-init

これで Postgres と redis が起動します

起動

  • docker-compose up -d

これで Airflow が起動します

  • docker-compose ps
           Name                          Command                   State                     Ports
----------------------------------------------------------------------------------------------------------------
airflow_airflow-init_1        /usr/bin/dumb-init -- /ent ...   Exit 0
airflow_airflow-scheduler_1   /usr/bin/dumb-init -- /ent ...   Up (unhealthy)   8080/tcp
airflow_airflow-webserver_1   /usr/bin/dumb-init -- /ent ...   Up (healthy)     0.0.0.0:8080->8080/tcp
airflow_airflow-worker_1      /usr/bin/dumb-init -- /ent ...   Up (unhealthy)   8080/tcp
airflow_flower_1              /usr/bin/dumb-init -- /ent ...   Up (healthy)     0.0.0.0:5555->5555/tcp, 8080/tcp
airflow_postgres_1            docker-entrypoint.sh postgres    Up (healthy)     5432/tcp
airflow_redis_1               docker-entrypoint.sh redis ...   Up (healthy)     0.0.0.0:6379->6379/tcp

動作確認

主に 3 パターンあるのでそれぞれ紹介します

GUI

localhost:8080 にアクセスすると確認できます
初期ID/パスワードは airflow/airflow でログインできます

サンプルのジョブがいくつか登録されているのが確認できると思います

<

CLI

airflow.sh というシェルスクリプトを使ってアクセスできます

  • curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.1.2/airflow.sh'
  • chmod +x airflow.sh
  • ./airflow.sh info

これで Airflow の情報が表示されるのが確認できると思います

curl

RESTAPI があるので curl を使ってコールしてみます
単純な Basic 認証でアクセスできます

  • ENDPOINT_URL="http://localhost:8080/" curl -X GET --user "airflow:airflow" "${ENDPOINT_URL}/api/v1/pools"

リファレンスはこちらにあります

最後に

とりあえずインストールと簡単な使い方だけ紹介しました
実際はジョブの登録やスケジューリングの登録を行う必要があります

チュートリアルがあるのでそれをやると大まかな使い方は理解できると思います

参考サイト

0 件のコメント:

コメントを投稿