【Airflow】入門 part.1 - 番外編 CeleryとFlower
概要
前回の記事で、起動が確認できました↓
Airflowの起動に合わせて、Flowerというダッシュボードも起動しています。
Flowerとは?
Flowerとは、タスクやワーカー数の調整などを行うWebベースのツールです。
Celeryとは?
Celery(セロリ) という、Python製でタスクキューベースの分散処理フレームワークのこと。 worker daemonを待機させてasync処理の仕組みを作ったり、beat daemonを起動して定時バッチ処理を組んだりすることが可能。
Flower+Celeryの実現で、redisをDockerファイルに定義してインストールしていたことになる。
docker-compose-CeleryExecutor.ymlを配置
docker-compose-CeleryExecutor.ymlというファイルを任意のディレクトリに配置します。
## 例 $ mkdir test-airflow $ mv docker-compose-CeleryExecutor.yml ~/test-airflow/
コンテナの構築・起動
docker-compose-CeleryExecutor.yml
を配置したディレクトリで以下を実行。
$ docker-compose -f docker-compose-CeleryExecutor.yml up -d
以下にように、done
と表示されればおk。
Creating network "test_20200415_default" with the default driver Pulling redis (redis:5.0.5)... 5.0.5: Pulling from library/redis b8f262c62ec6: Pull complete 93789b5343a5: Pull complete 49cdbb315637: Pull complete 2c1ff453e5c9: Pull complete 9341ee0a5d4a: Pull complete 770829e1df34: Pull complete Digest: sha256:5dcccb533dc0deacce4a02fe9035134576368452db0b4323b98a4b2ba2d3b302 Status: Downloaded newer image for redis:5.0.5 Pulling postgres (postgres:9.6)... 9.6: Pulling from library/postgres 48839397421a: Pull complete 0cf8a1bc2b87: Pull complete 73498a4e88b3: Pull complete 497c518cf27d: Pull complete 67fdd1391d2e: Pull complete eced13f1b460: Pull complete d5a83883f95d: Pull complete 5a290fef01b8: Pull complete 60611a60649a: Pull complete ab7b2445b4d1: Pull complete a609de04bec9: Pull complete 0544058c2b5d: Pull complete facb5fc91659: Pull complete cefa49d68ba7: Pull complete Digest: sha256:df815e77bcd2da9fa1835a751eadaaccfa0c8ebbe92605a5566a5a2d20950afa Status: Downloaded newer image for postgres:9.6 Pulling webserver (puckel/docker-airflow:1.10.9)... 1.10.9: Pulling from puckel/docker-airflow bc51dd8edc1b: Pull complete dc4aa7361f66: Pull complete 5f346cb9ea74: Pull complete a4f1efa8e0e8: Pull complete 7e4812fc693b: Pull complete ff8fd055a548: Pull complete c9215f8e7f2f: Pull complete cab2fe472084: Pull complete 1f03789c1e57: Pull complete Digest: sha256:30e7cb9744ad367c54ae30a379fa46c9df4ea582bf2fcb96604adfc2760be79a Status: Downloaded newer image for puckel/docker-airflow:1.10.9 Creating test_20200415_redis_1 ... done Creating test_20200415_postgres_1 ... done Creating test_20200415_flower_1 ... done Creating test_20200415_webserver_1 ... done Creating test_20200415_scheduler_1 ... done Creating test_20200415_worker_1 ... done
dockerのimageとコンテナを確認
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE postgres 9.6 6c8b19735285 2 weeks ago 200MB puckel/docker-airflow 1.10.9 3e408baf20fe 2 months ago 797MB redis 5.0.5 63130206b0fa 7 months ago 98.2MB
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 95f0df46cbc4 puckel/docker-airflow:1.10.9 "/entrypoint.sh work…" 39 seconds ago Up 39 seconds 5555/tcp, 8080/tcp, 8793/tcp test_20200415_worker_1 a75fc01c3f42 puckel/docker-airflow:1.10.9 "/entrypoint.sh sche…" 40 seconds ago Up 39 seconds 5555/tcp, 8080/tcp, 8793/tcp test_20200415_scheduler_1 9f8818470c01 puckel/docker-airflow:1.10.9 "/entrypoint.sh flow…" 40 seconds ago Up 40 seconds 8080/tcp, 0.0.0.0:5555->5555/tcp, 8793/tcp test_20200415_flower_1 63a2161a9817 puckel/docker-airflow:1.10.9 "/entrypoint.sh webs…" 40 seconds ago Up 40 seconds (healthy) 5555/tcp, 8793/tcp, 0.0.0.0:8080->8080/tcp test_20200415_webserver_1 067ae0133033 redis:5.0.5 "docker-entrypoint.s…" 41 seconds ago Up 40 seconds 6379/tcp test_20200415_redis_1 35dc9542f790 postgres:9.6 "docker-entrypoint.s…" 41 seconds ago Up 40 seconds 5432/tcp test_20200415_postgres_1
postgresのヴァージョン指定などをしたい場合は、さきほど配置したdocker-compose-CeleryExecutor.yml
の中身を編集することで、ヴァージョンの指定が可能だと思います。
ここまで確認できたら、一旦ブラウザでもUIが表示されるか確認します。
ダッシュボードの確認
起動できたら、↑上記にアクセスすると Flowerのダッシュボードが観覧可能です。
<project_name>/ ├── dags ## ← ここにDAGを定義するファイルを作成していく └── docker-compose-CeleryExecutor.yml