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

时间:2017-04-19 22:38:29

标签: 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

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

3 个答案:

答案 0 :(得分:18)

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

  • airflow webserver
  • airflow scheduler

如果您只有airflow webserver正在运行,则用户界面会将DAG显示为running,但如果您点击DAG,则其任务实际上都不是running或{{1}而是处于scheduled状态。 这意味着他们等待Null接听。如果airflow scheduler未运行,您将永远陷入此状态,因为任务永远不会被执行。

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

答案 1 :(得分:6)

我最近也开始使用Airflow,我的笨蛋一直在无休止地运行。您的dag可能会设置为“暂停”&#39;没有你意识到它,因此调度程序将不会安排新的任务实例,当你触发dag时,它看起来就像无休止地运行。

有一些解决方案:

1)在Airflow UI中,切换dag左边的按钮,然后关闭&#39;关闭&#39;到&#39; On&#39;。关闭意味着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

答案 2 :(得分:0)

以下内容对我有用。

  1. 确保已设置AIRFLOW_HOME
  2. AIRFLOW_HOME中的
  3. 具有文件夹dag,插件。具有气流用户权限的文件夹r,w,x。
  4. 确保您在dags /文件夹中至少有一个dag。
  5. pip install celery [redis] == 4.1.1

我已经检查了上述有关气流1.9.0气流版本的信息

我在airflow 1.10版本中尝试了相同的技巧,并且有效。