Open3
Airflowのあれこれ
まずはDockerで環境構築
version: "2.6.3"
- 実務に合わせる
- 最新は"2.8.0"
以下のコンテナを立てる
- MySQL
- Airflowのメタデータを保存する。DAGの設定、実行状況、ログなど。
- Webserver
- AirflowのWeb UIを提供。このWebインターフェースを通じてDAGの管理、モニタリング、ログの確認などができる。MySQLデータベースに格納されたメタデータ
- Scheduler
- DAGのスケジューリングとタスクの実行を管理。定義されたスケジュールに基づいてDAGをトリガーする。
- Worker
- 実際のタスクを実行するためのコンテナ。Schedulerからタスクを受け取り、それらを実行する。今回はCeleryExecutorを使用。
- Redis
- Executorがタスクのキューイングと実行状態の管理を行うためにRedisを使用。
- Flower
- AirflowのCelery Executor用のモニタリングツール。タスクキューの状態、ワーカーの状態、実行中のタスクなどをリアルタイムで監視できる。
ExecutorとWorkerがごっちゃになった
Executor
- Workerへのタスクの割り当てを管理する役割を担う
- 様々なタイプのExecutorが利用可能(LocalExecutor, SequentialExecutor, CeleryExecutor)
Worker
- Executorから割り当てられたタスクを実際に実行するエンティティ
[ref]
エラー対応メモ
TypeError: SqlAlchemySessionInterface.__init__() missing 4 required positional arguments: 'sequence', 'schema', 'bind_key', and 'sid_length'
Flask-Sessionのversionを0.6.0 -> 0.5.0で固定することで解決