首页 文章

气流:排队但未运行的任务

提问于
浏览
3

我是气流新手并试图设置气流来运行ETL管道 . 我能够安装

  • 气流

  • postgres

  • 芹菜

  • rabbitmq

我能够测试运行turtorial dag . 当我尝试安排作业时,调度程序能够获取它并将我可以在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:rabbit@x.x.x.x/rabbitmq_vhost

celery_result_backend = db+postgresql+psycopg2://postgres:airflow@xxx.amazonaws.com:5432/airflow


flower_host = 0.0.0.0

flower_port = 5555

default_queue = default

DAG:This is the tutorial dag i used

我的dag的开始日期是 - 'start_date':datetime(2017,4,11),

3 回答

  • 0

    让你运行气流的所有三个组成部分,即:

    airflow webserver
    airflow scheduler
    airflow worker
    

    如果只运行前两个,则任务将排队,但不会执行 . 气流工作者将提供实际执行dags的 Worker .

    顺便说一句,芹菜4.0.2目前与气流1.7或1.8不兼容 . 请改用芹菜3 .

  • 0

    我今天也尝试升级到airflow v1.8,并且与芹菜和rabbitmq挣扎 . 有什么帮助改变了librabbitmq(在使用amqp时默认使用)到airflow.cfg中的pyamqp

    broker_url = pyamqp://rabbit:rabbit@x.x.x.x/rabbitmq_vhost
    

    (这是我从中得到的想法:https://github.com/celery/celery/issues/3675

  • 6

    我意识到你的问题已经得到解决,并且与芹菜版本不匹配有关,但我也看到任务队列并且从未运行,因为我将日志位置更改为气流服务用户无权编写的位置 .

    在上面问题中给出的示例airflow.cfg中: base_log_folder = /root/airflow/logs

    我正在使用AWS EC2机器并将日志更改为写入 base_log_folder = /mnt/airflow/logs

    在UI中没有给出关于为什么任务排队的指示,它只是说“未知,所有依赖都被满足......”给予气流守护进程/服务用户写入修复它的权限 .

相关问题