Airflow 1.9.0正在排队,但未启动任务
气流随机不运行排队任务有些任务甚至不获取排队状态。我一直在调度程序日志中看到下面的内容Airflow 1.9.0正在排队,但未启动任务,airflow,airflow-scheduler,Airflow,Airflow Scheduler,气流随机不运行排队任务有些任务甚至不获取排队状态。我一直在调度程序日志中看到下面的内容 [2018-02-28 02:24:58,780] {jobs.py:1077} INFO - No tasks to consider for execution. 我确实看到数据库中的任务没有状态或排队状态,但它们从未开始 气流设置在ECS上运行,带有Redis。有4个调度程序线程和4个芹菜工人任务。对于未运行的任务,当鼠标悬停在任务图标上方时,将以队列状态(灰色图标)显示,运算符为null,任务详细
[2018-02-28 02:24:58,780] {jobs.py:1077} INFO - No tasks to consider for execution.
我确实看到数据库中的任务没有状态或排队状态,但它们从未开始
气流设置在ECS上运行,带有Redis。有4个调度程序线程和4个芹菜工人任务。对于未运行的任务,当鼠标悬停在任务图标上方时,将以队列状态(灰色图标)显示,运算符为null,任务详细信息显示:
All dependencies are met but the task instance is not running. In most cases this just means that the task will probably be scheduled soon unless:- The scheduler is down or under heavy load
调度程序上的指标不显示重载。dag非常简单,只有两个独立的任务依赖于最后一次运行。同一dag中还有一些任务没有状态(白色图标)
有趣的是,当我重新启动调度程序时,任务会变为运行状态。设置气流可能有点棘手
- 您是否运行了
气流调度程序
- 您是否运行了
李>airflow Web服务器
- 是否已检查要运行的所有DAG在web ui中是否设置为打开
- 是否所有要运行的DAG都有一个过去的开始日期
- 是否所有要运行的DAG都有一个在web ui中显示的正确计划
- 如果没有其他功能,您可以使用web ui单击dag,然后单击图形视图。现在选择第一个任务并单击任务实例。在“任务实例详细信息”一段中,您将看到DAG等待或不运行的原因李>
depends\u on\u past:True
,它禁止当前实例正确启动
文档中还有一个很好的资源,还有一些提示:。我也在运行puckel/docker airflow repo的分支,主要在airflow 1.8上运行了大约一年,有1000多万个任务实例。我认为问题仍然存在于1.9版本中,但我并不乐观 无论出于何种原因,气流调度器似乎存在一个长期存在的问题,即性能会随着时间的推移而下降。我已经回顾了调度程序代码,但是我仍然不清楚在一个新的开始中到底发生了什么不同的事情,以便将其重新正常地安排。一个主要的区别是,计划任务状态和排队任务状态是重建的 在Airflow中,wiki提供了有关调度器如何工作及其各种状态的简明参考 大多数人通过定期重新启动调度器来解决调度器吞吐量下降的问题。我个人发现每隔1小时就成功一次,但也经常看到每隔5-10分钟成功一次。在尝试重新启动间隔时,您的任务量、任务持续时间和并行度设置值得考虑 有关更多信息,请参阅:
- (部分“应经常重新启动计划程序”)
- (部分“部署DAG更改时重新启动一切”。)
- (特别是在这里可以看到博尔克的回答)
- 仔细设置任务和DAG超时
- 在airflow\u主文件夹的airflow.cfg文件中增加dag\u并发性
我也有类似的问题,但它主要与subdag Operator有关,总共有3000多个任务实例(30个任务*44个subdag任务) 我发现,
airflow scheduler
主要负责将计划的任务放入“排队的插槽”(池),而airflow芹菜工人则负责拾取排队的任务并将其放入“使用的插槽”(池)并运行它
根据您的描述,您的计划程序应该可以正常工作。我建议你检查你的“芹菜工人”日志,看看是否有任何错误,或重新启动它,看看是否有帮助。我遇到一些问题,芹菜工人通常会罢工几分钟,然后重新开始工作(特别是在Subdag Operator上)我今天面对这个问题,发现下面回答的要点4解决了这个问题
*'Do all the DAGs you want to run have a start date which is in the past?'*
我使用的是airflow v1.10.3版我的问题更进一步,除了我的任务正在排队之外,我在Flower UI上看不到任何芹菜工人。解决方案是,因为我以root用户身份运行芹菜工人,所以我必须在~/.bashrc文件中进行更改
以下步骤使其工作正常:
将export C_FORCE_ROOT=true添加到~/.bashrc文件中
source~/.bashrc
运行worker:nohup气流工作者$*>~/afflow/logs/worker.logs&
请在http://{HOST}:5555查看您的Flower UI,我认为芹菜4.2.1版和redis 3.0.1版存在以下问题:
我们通过降级redis 2.10.6版解决了这个问题:
redis==2.10.6
我认为值得一提的是,存在一个可能导致任务无法运行的未决问题
ps -ef | grep airflow #show the process id
kill 1234 #kill the webserver
kill 5678 #kill the scheduler
airflow-scheduler.err
airflow-scheduler.pid
airflow-webserver.err
airflow-webserver.pid
airflow webserver -D
airflow scheduler -D
foo = DummyOperator(
task_id='foo',
dag=dag,
pool='capser'
)
Task is in the 'None' state which is not a valid state for execution. The task must be cleared in order to be run.
DAG(dag_id='your-dag', is_paused_upon_creation=True)
dags_are_paused_at_creation = FALSE
AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION=False