示例DAG无限期地陷入"运行"状态

gcb*_*son 21 airflow

在我第一次涉足气流时,我正在尝试运行安装附带的示例DAGS之一.这是v.1.8.0.这是我的步骤:

$ airflow trigger_dag example_bash_operator
[2017-04-19 15:32:38,391] {__init__.py:57} INFO - Using executor SequentialExecutor
[2017-04-19 15:32:38,676] {models.py:167} INFO - Filling up the DagBag from /Users/gbenison/software/kludge/airflow/dags
[2017-04-19 15:32:38,947] {cli.py:185} INFO - Created <DagRun example_bash_operator @ 2017-04-19 15:32:38: manual__2017-04-19T15:32:38, externally triggered: True>
$ airflow dag_state example_bash_operator '2017-04-19 15:32:38'
[2017-04-19 15:33:12,918] {__init__.py:57} INFO - Using executor SequentialExecutor
[2017-04-19 15:33:13,229] {models.py:167} INFO - Filling up the DagBag from /Users/gbenison/software/kludge/airflow/dags
running
Run Code Online (Sandbox Code Playgroud)

dag状态长时间保持"运行"状态(现在至少20分钟),但是通过快速检查这项任务,它应该需要几秒钟.我该如何解决这个问题?我怎样才能看到它被贴在哪一步?

小智 27

要运行任何DAG,您需要确保两个进程正在运行:

  • airflow webserver
  • airflow scheduler

如果你只有airflow webserver运行时,用户界面将显示的DAG的running,但如果你点击DAG,没有它的任务实际上是runningscheduled,而是一个Null状态.这意味着他们正在等待接受airflow scheduler.如果airflow scheduler没有运行,你将永远陷入这种状态,因为任务永远不会被执行.

此外,请确保DAG视图中的切换按钮切换为特定DAG的"ON".否则,如果您手动触发它,调度程序将无法获取它.

  • &gt; 切换到“开”,这救了我!谢谢 (5认同)
  • 作为Ladislav答案的补充,请确保DAG视图中的切换按钮切换为特定DAG的"ON".否则,如果您手动触发它,调度程序将无法获取它. (3认同)

小智 8

我最近也开始使用Airflow,我的dags一直在无休止地运行.您的dag可能会在没有意识到的情况下设置为"暂停",因此调度程序不会安排新的任务实例,当您触发dag时,它看起来就像是无休止地运行.

有几个解决方案:

1)在Airflow UI中,将dag左侧的按钮从"Off"切换为"On".关闭意味着dag暂停,因此On将允许调度程序拾取并完成dag.(这解决了我的初始问题)

2)在你的airflow.cfg文件中,dags_are_paused_at_creation = True,是默认值.所以你创建的所有新dag都从一开始就暂停了.将此更改为False,您创建的未来dags将立即发布(我必须重新启动webserver和调度程序以更改airflow.cfg才能被识别)

3)使用命令行$ airflow unpause [dag_id]文档:https://airflow.apache.org/cli.html#unpause