气流任务陷入"排队"状态,永远不会运行

Nor*_*agi 21 airflow apache-airflow airflow-scheduler

我正在使用Airflow v1.8.1并在kubernetes和Docker上运行所有组件(worker,web,flower,scheduler).我使用Redis的Celery Executor,我的任务看起来像:

(start) -> (do_work_for_product1)
     ?  -> (do_work_for_product2)
     ?  -> (do_work_for_product3)
     ?  …
Run Code Online (Sandbox Code Playgroud)

所以start任务有多个下游.我设置了与并发相关的配置如下:

parallelism = 3
dag_concurrency = 3
max_active_runs = 1
Run Code Online (Sandbox Code Playgroud)

然后,当我手动运行此DAG(不确定它是否从未在计划任务中发生)时,某些下游会执行,但其他下游仍处于"排队"状态.

如果我从Admin UI清除任务,它将被执行.没有工作日志(在处理一些第一个下游之后,它只是不输出任何日志).

Web服务器的日志(不确定worker exiting是否相关)

/usr/local/lib/python2.7/dist-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
  .format(x=modname), ExtDeprecationWarning
[2017-08-24 04:20:56,496] [51] {models.py:168} INFO - Filling up the DagBag from /usr/local/airflow_dags
[2017-08-24 04:20:57 +0000] [27] [INFO] Handling signal: ttou
[2017-08-24 04:20:57 +0000] [37] [INFO] Worker exiting (pid: 37)
Run Code Online (Sandbox Code Playgroud)

调度程序也没有错误日志.每当我尝试这个时,许多任务就会发生变化.

因为我也使用Docker,我想知道这是否相关:https: //github.com/puckel/docker-airflow/issues/94 但到目前为止,没有任何线索.

有没有人遇到类似的问题或者有一些想法我可以调查这个问题...?

Bol*_*uin 6

卡住的任务很可能是一个错误。此刻(<= 1.9.0alpha1)可能在任务甚至无法在(远程)工作程序上启动时发生。例如,在工作程序超载或缺少依赖项的情况下会发生这种情况。

修补程序应解决该问题。

值得调查为什么您的任务没有处于RUNNING状态。将自己设置为这种状态是任务要做的第一件事。通常,工作程序会在开始执行之前记录日志,并且还会报告和出错。您应该能够在任务日志中找到此项。

编辑:如在原始问题的评论中提到的那样,如果气流无法运行任务的一个例子是当它无法写入所需位置时,它就会被提及。这使其无法继续执行,并且任务会卡住。该修补程序通过使调度程序中的任务失败来解决此问题。

  • 我们看到此问题与1.9.0任务排入队列,但从未进入运行状态,除非从UI手动完成 (3认同)