私はエアフローに不慣れで、ETLパイプラインを実行するようにエアフローを設定しようとしています。インストールできました
タートリアルダグをテスト実行することができます。ジョブをスケジュールしようとすると、スケジューラーはそれを取得して、UIに表示されているジョブをキューに入れることができますが、タスクは実行されていません。誰かが私がこの問題を修正するのを手伝ってくれるでしょうか?私はここで最も基本的な気流の概念が欠けていると思います。以下はairflow.cfgです
これが私の設定ファイルです:
[core]
airflow_home = /root/airflow
dags_folder = /root/airflow/dags
base_log_folder = /root/airflow/logs
executor = CeleryExecutor
sql_alchemy_conn = postgresql+psycopg2://xxxx.amazonaws.com:5432/airflow
api_client = airflow.api.client.local_client
[webserver]
web_server_Host = 0.0.0.0
web_server_port = 8080
web_server_worker_timeout = 120
worker_refresh_batch_size = 1
worker_refresh_interval = 30
[celery]
celery_app_name = airflow.executors.celery_executor
celeryd_concurrency = 16
worker_log_server_port = 8793
broker_url = amqp://rabbit:[email protected]/rabbitmq_vhost
celery_result_backend = db+postgresql+psycopg2://postgres:[email protected]:5432/airflow
flower_Host = 0.0.0.0
flower_port = 5555
default_queue = default
そして、私のdagの開始日は-'start_date ':datetime(2017、4、11)、
エアフローの3つのコンポーネントすべてを実行します。
airflow webserver
airflow scheduler
airflow worker
前の2つだけを実行すると、タスクはキューに入れられますが、実行されません。エアフローワーカーは、実際にダグを実行するワーカーを提供します。
また、セロリ4.0.2は、現在、エアフロー1.7または1.8と互換性がありません。代わりにセロリ3を使用してください。
LocalExecutor
で十分なオプションである場合は、いつでも元に戻そうとすることができます。 CeleryExecutor
に関するいくつかの問題について聞いたことがあります。
executor = CeleryExecutor
ファイルでexecutor = LocalExecutor
をairflow.cfg
に変更するだけです(ほとんどの場合~/airflow/airflow.cfg
)。
スケジューラを再起動すると、それだけです。
あなたの問題はすでに解決されており、セロリのバージョンの不一致に関連していると思いますが、ログの場所をエアフローサービスのユーザーが書き込む権限のない場所に変更したため、タスクがキューに入れられて実行されませんでした。
上記の質問で与えられたairflow.cfgの例では:base_log_folder = /root/airflow/logs
AWS EC2マシンを使用していて、ログをbase_log_folder = /mnt/airflow/logs
に書き込むように変更しました
UIには、タスクがキューに入れられる理由が示されていません。「不明、すべての依存関係が満たされています...」とだけ表示されます。airflowデーモン/サービスユーザーに書き込み権限を与えると、修正されました。
今日もairflowv1.8にアップグレードしようとしましたが、セロリとrabbitmqに苦労しました。助けになったのは、airflow.cfgのlibrabbitmq(amqpを使用するときにデフォルトで使用される)からpyamqpへの変更でした。
broker_url = pyamqp://rabbit:[email protected]/rabbitmq_vhost
(これは私がアイデアを得たところです: https://github.com/celery/celery/issues/3675 )