小编trk*_*ker的帖子

如何解决Airflow Scheduler中的数据库连接无效警告?

我正在将Airflow实例从1.9升级到1.10.3,并且每当调度程序现在运行时,我都会收到一条警告,指出数据库连接已失效,并且正在尝试重新连接。这些错误会连续出现。控制台还指示正在计划任务,但是如果我检查数据库,则什么也没写。

以下警告显示以前从未出现过的地方

[2019-05-21 17:29:26,017] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...
Run Code Online (Sandbox Code Playgroud)

最终,我也会收到此错误

FATAL: remaining connection slots are reserved for non-replication superuser connections
Run Code Online (Sandbox Code Playgroud)

我试图增加SQL Alchemy池大小设置,airflow.cfg但这没有效果

# The SqlAlchemy pool size is the maximum number of database connections in the pool.
sql_alchemy_pool_size = 10
Run Code Online (Sandbox Code Playgroud)

我正在使用CeleryExecutor,并且我认为可能是大量的工作人员正在使数据库连接超载。

我运行三个命令airflow webserverairflow schedulerairflow worker,所以应该只有一个工人,我不明白为什么会超载数据库。

如何解决数据库连接错误?是否有增加数据库连接数量的设置,如果有,它在哪里?我需要不同地对待工人吗?


更新:

即使没有工作人员在运行,也要重新启动Web服务器和调度程序,当调度程序填满气流池时,DB连接警告也会开始出现。


更新2:

我在Airflow Jira中发现以下问题:https : //issues.apache.org/jira/browse/AIRFLOW-4567

有些活动与其他人说他们看到相同的问题。目前尚不清楚这是否直接导致某些人看到的崩溃,或者这仅仅是一个讨厌的装饰日志。到目前为止,还没有解决此问题的方法。

database postgresql sqlalchemy airflow airflow-scheduler

12
推荐指数
1
解决办法
1565
查看次数