如何解决 Airflow Scheduler 中的数据库连接无效警告?
How to resolve DB connection invalidated warning in Airflow Scheduler?
我正在将我们的 Airflow 实例从 1.9 升级到 1.10.3,每当调度程序 运行s 现在我收到一条警告,指出数据库连接已失效,它正在尝试重新连接。一堆这样的错误连续出现。控制台还指示正在安排任务,但如果我检查数据库,则不会写入任何内容。
以下警告出现在它之前没有出现的地方
[2019-05-21 17:29:26,017] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...
最后,我也会得到这个错误
FATAL: remaining connection slots are reserved for non-replication superuser connections
我试图在 airflow.cfg
中增加 SQL 炼金术池大小设置,但没有效果
# The SqlAlchemy pool size is the maximum number of database connections in the pool.
sql_alchemy_pool_size = 10
我正在使用 CeleryExecutor,我在想可能是工作人员的数量使数据库连接过载了。
我 运行 三个命令,airflow webserver
、airflow scheduler
和 airflow worker
,所以应该只有一个工人,我不明白为什么会超载数据库。
如何解决数据库连接错误?是否有增加数据库连接数的设置,如果有的话在哪里?我需要以不同方式处理工人吗?
更新:
即使没有工人 运行ning,重新启动网络服务器和调度程序,当调度程序填满气流池时,数据库连接警告开始出现。
更新 2:
我在 Airflow Jira 中发现了以下问题:https://issues.apache.org/jira/browse/AIRFLOW-4567
有些人 activity 和其他人说他们看到了同样的问题。目前尚不清楚这是否会直接导致某些人看到的崩溃,或者这是否只是一个烦人的外观日志。目前还没有解决这个问题。
这已在最新版本的 Airflow 中解决,1.10.4
我相信它已被 AIRFLOW-4332 修复,将 SQLAlchemy 更新到更新版本。
我正在将我们的 Airflow 实例从 1.9 升级到 1.10.3,每当调度程序 运行s 现在我收到一条警告,指出数据库连接已失效,它正在尝试重新连接。一堆这样的错误连续出现。控制台还指示正在安排任务,但如果我检查数据库,则不会写入任何内容。
以下警告出现在它之前没有出现的地方
[2019-05-21 17:29:26,017] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...
最后,我也会得到这个错误
FATAL: remaining connection slots are reserved for non-replication superuser connections
我试图在 airflow.cfg
中增加 SQL 炼金术池大小设置,但没有效果
# The SqlAlchemy pool size is the maximum number of database connections in the pool.
sql_alchemy_pool_size = 10
我正在使用 CeleryExecutor,我在想可能是工作人员的数量使数据库连接过载了。
我 运行 三个命令,airflow webserver
、airflow scheduler
和 airflow worker
,所以应该只有一个工人,我不明白为什么会超载数据库。
如何解决数据库连接错误?是否有增加数据库连接数的设置,如果有的话在哪里?我需要以不同方式处理工人吗?
更新:
即使没有工人 运行ning,重新启动网络服务器和调度程序,当调度程序填满气流池时,数据库连接警告开始出现。
更新 2:
我在 Airflow Jira 中发现了以下问题:https://issues.apache.org/jira/browse/AIRFLOW-4567
有些人 activity 和其他人说他们看到了同样的问题。目前尚不清楚这是否会直接导致某些人看到的崩溃,或者这是否只是一个烦人的外观日志。目前还没有解决这个问题。
这已在最新版本的 Airflow 中解决,1.10.4
我相信它已被 AIRFLOW-4332 修复,将 SQLAlchemy 更新到更新版本。