我正在测试Airflow的使用,并且在同时触发(看似)大量DAG之后,似乎无法安排任何事情并开始终止进程。这些是调度程序打印的日志:
[2019-08-29 11:17:13,542] {scheduler_job.py:214} WARNING - Killing PID 199809
[2019-08-29 11:17:13,544] {scheduler_job.py:214} WARNING - Killing PID 199809
[2019-08-29 11:17:44,614] {scheduler_job.py:214} WARNING - Killing PID 2992
[2019-08-29 11:17:44,614] {scheduler_job.py:214} WARNING - Killing PID 2992
[2019-08-29 11:18:15,692] {scheduler_job.py:214} WARNING - Killing PID 5174
[2019-08-29 11:18:15,693] {scheduler_job.py:214} WARNING - Killing PID 5174
[2019-08-29 11:18:46,765] {scheduler_job.py:214} WARNING - Killing PID 22410
[2019-08-29 11:18:46,766] {scheduler_job.py:214} WARNING - Killing PID 22410
[2019-08-29 11:19:17,845] {scheduler_job.py:214} WARNING - Killing PID 42177
[2019-08-29 11:19:17,846] {scheduler_job.py:214} WARNING - Killing PID 42177
...
我正在将LocalExecutor与PostgreSQL后端数据库一起使用。似乎只有在我使用外部触发同时触发大量(> 100)DAG之后才发生。如:
airflow trigger_dag DAG_NAME
在等待其杀死所有正在杀死的进程之后,他开始正确执行所有任务。 我什至不知道这些过程是什么,因为它们被杀死后我看不到它们。
有人遇到过这种行为吗?知道为什么会这样吗?
答案 0 :(得分:1)
我遇到了非常相似的问题。我的DAG具有相同的性质(一个动态生成许多DAG的文件)。我尝试了建议的解决方案,但没有成功(该值已经达到60秒的高点了,增加到120秒,但是我的问题没有解决)。
发布在其他人遇到类似问题时对我有用的东西。
我碰到了这张JIRA机票:https://issues.apache.org/jira/browse/AIRFLOW-5506
这帮助我解决了问题:我禁用了SLA配置,然后所有任务开始运行!
也有其他解决方案,如票证中的其他注释所示。
记录下来,我启用了几个月禁用的许多此类DAG(大约60?)后,开始出现我的问题。从技术角度来看,不确定SLA如何影响TBH,但确实如此。
答案 1 :(得分:0)
在我的情况下,上面的原因是我有一个DAG文件,它动态创建了很多DAG。
“ dagbag_import_timeout”配置变量控制默认值为30,该变量控制“在填充DagBag时超时导入python文件之前多长时间”。因此,填充DagBag的过程保持超时。