Airflow v2升级后出现未使用的airflow.providers.mysql模块缺失警告
问题原因
这个警告是Airflow v2的Provider自动扫描机制触发的,和你项目代码有没有引用无关:
webserver_1 | [2021-08-21 18:13:45,565] {providers_manager.py:299} WARNING - Exception when importing 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLHook' from 'apache-airflow-providers-google' package: No module named 'airflow.providers.mysql'
Airflow v2启动时会自动扫描所有已安装的provider包下的所有Hook、Operator类完成注册,apache-airflow-providers-google包中内置的CloudSQLHook声明了对apache-airflow-providers-mysql包的可选依赖,只要你环境里安装了谷歌云provider但没装mysql provider,启动时就会抛出这个警告,和你业务代码有没有调用相关类完全无关。大多时候这个包是Airflow官方镜像默认预装的全量provider中的一个,不需要你手动安装就会存在。
解决方法
按你的实际场景选以下任意一种即可:
- 如果你后续可能用到谷歌云相关的Airflow能力:直接安装缺失的可选依赖即可
执行命令:pip install apache-airflow-providers-mysql,注意安装版本和你当前Airflow v2的版本兼容即可。 - 如果你完全用不到谷歌云相关的Airflow能力:直接卸载谷歌云provider包
执行命令:pip uninstall -y apache-airflow-providers-google,卸载后Airflow启动时不会再扫描该包的内容,警告直接消除。 - 如果你既不想卸载谷歌云provider,也不想安装不需要的mysql provider:可以配置Airflow忽略该类警告
在airflow.cfg的[core]配置段添加如下内容:
或者如果你是用环境变量配置Airflow,设置warn_filters = ignore.*Exception when importing.*CloudSQLHook.*AIRFLOW__CORE__WARN_FILTERS="ignore.*Exception when importing.*CloudSQLHook.*"即可。
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

