GuD*_*GuD 12 airflow airflow-scheduler
我正在测试 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
...
Run Code Online (Sandbox Code Playgroud)
我正在使用带有 PostgreSQL 后端数据库的 LocalExecutor。似乎只有在我使用外部触发同时触发大量(> 100)DAG 之后才会发生这种情况。如:
airflow trigger_dag DAG_NAME
Run Code Online (Sandbox Code Playgroud)
在等待它完成杀死他正在杀死的任何进程之后,他开始正确执行所有任务。我什至不知道这些进程是什么,因为在它们被杀死后我真的看不到它们......
有没有人遇到过这种行为?知道为什么会这样吗?
在我的例子中,上述情况的原因是我有一个动态创建大量 DAG 的 DAG 文件。
控制“填充 DagBag 时 python 文件导入超时之前多长时间”的“dagbag_import_timeout”配置变量设置为默认值 30。因此,填充 DagBag 的过程一直超时。
我有一个非常类似的问题。我的 DAG 具有相同的性质(动态生成许多 DAG 的文件)。我尝试了建议的解决方案,但它不起作用(这个值已经很高了,60秒,增加到120,但我的问题没有解决)。
发布对我有用的内容,以防其他人遇到类似的问题。
我发现了这张 JIRA 票证:https://issues.apache.org/jira/browse/AIRFLOW-5506
这帮助我解决了我的问题:我禁用了 SLA 配置,然后我的所有任务开始运行!
正如本票中的其他评论所建议的,还可以有其他解决方案。
根据记录,我的问题是在我启用了许多已禁用了几个月的 DAG(大约 60 个?)后开始出现的。老实说,从技术角度来看,不知道 SLA 如何影响这一点,但确实如此。
| 归档时间: |
|
| 查看次数: |
3021 次 |
| 最近记录: |