我的任务设置为this question。
基于UI,看起来依赖关系是明确定义的:
我已按如下方式测试了各项任务:airflow test capone_dash_preproc AAAG5608078M2 2017-07-25
。这非常有用,可以更新与该用户对应的目标数据库条目。然而,当我尝试执行完整任务时,似乎它被挂断了。 python3 dash_dag.py
基本上导致Web服务器上的以下终端输出,无休止地重复。所有的CPU都很安静,因此看起来似乎没有太多的计算:
/usr/local/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
.format(x=modname), ExtDeprecationWarning
[2017-07-25 16:48:23,266] [58627] {models.py:167} INFO - Filling up the DagBag from /Users/aaronpolhamus/airflow/dags
[2017-07-25 16:48:25 -0500] [58487] [INFO] Handling signal: ttou
[2017-07-25 16:49:13 -0500] [58557] [INFO] Worker exiting (pid: 58557)
[2017-07-25 16:49:44 -0500] [58487] [INFO] Handling signal: ttin
[2017-07-25 16:49:44 -0500] [58642] [INFO] Booting worker with pid: 58642
/usr/local/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
.format(x=modname), ExtDeprecationWarning
[2017-07-25 16:49:44,607] [58642] {models.py:167} INFO - Filling up the DagBag from /Users/aaronpolhamus/airflow/dags
[2017-07-25 16:49:46 -0500] [58487] [INFO] Handling signal: ttou
[2017-07-25 16:50:21 -0500] [58568] [INFO] Worker exiting (pid: 58568)
[2017-07-25 16:50:51 -0500] [58487] [INFO] Handling signal: ttin
[2017-07-25 16:50:51 -0500] [58661] [INFO] Booting worker with pid: 58661
/usr/local/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
.format(x=modname), ExtDeprecationWarning
[2017-07-25 16:50:52,324] [58661] {models.py:167} INFO - Filling up the DagBag from /Users/aaronpolhamus/airflow/dags
[2017-07-25 16:50:54 -0500] [58487] [INFO] Handling signal: ttou
[2017-07-25 16:51:20 -0500] [58596] [INFO] Worker exiting (pid: 58596)
[2017-07-25 16:51:50 -0500] [58487] [INFO] Handling signal: ttin
[2017-07-25 16:51:50 -0500] [58677] [INFO] Booting worker with pid: 58677
...
我的困惑源于个别测试运行得很好并填充数据库。这是整个运行挂起和失败。有什么明显的吗?
答案 0 :(得分:1)
气流存在多个组件。最重要的是调度程序,Web服务器和工作程序(在水平扩展的情况下)。调度程序始终*需要运行以使Airflow执行任务。 Web服务器只是在调度程序正在执行的操作和Rest API之上提供了一个很好的UI。所有组件都使用后备数据库。
您正在显示网络服务器的输出,而我本来希望看到调度程序的输出。从您发布的屏幕截图和尝试运行DAG的方式来看,我的假设是您没有启动它。
因此,通过在命令行上发出airflow scheduler
启动调度程序,您的DAG可能会启动。
*回填是一个例外