Airflow 2.2.1版本升级后Web UI首次操作异常报错求助
解决Airflow 2.2.1 Web UI首次操作崩溃的IO错误问题
从你提供的报错堆栈和环境信息来看,核心问题出在Airflow使用Rich库输出警告时触发了IO错误,这和你以服务形式运行Airflow、采用pip安装的部署方式密切相关。下面是针对性的解决方案:
1. 禁用Rich日志输出(最直接的修复)
Airflow 2.2.x版本引入了Rich库来美化控制台输出,但在非交互式的服务环境中(比如systemd托管的服务),Rich无法正常获取终端输出流,从而触发OSError: [Errno 5] Input/output error。
修改你的airflow.cfg配置文件,找到并设置:
enable_rich_logging = False
修改后重启Airflow Webserver和Scheduler服务,这应该能立即解决首次操作崩溃的问题。
2. 检查服务运行的权限与输出配置
如果是用systemd或其他服务管理器运行Airflow,确保:
- 运行Airflow的用户(比如
hadoop)对Airflow的日志目录(默认是$AIRFLOW_HOME/logs)、临时目录有完整的读写权限 - 服务配置中正确设置了输出流,比如systemd配置里添加:
避免进程的stdout/stderr被关闭或重定向到不可写的位置。[Service] StandardOutput=journal+console StandardError=journal+console
3. 修复pip安装的依赖问题
由于你采用pip安装而非官方标准部署,可能存在依赖版本冲突。建议重新安装Airflow 2.2.1,使用官方提供的约束文件来确保依赖版本兼容:
pip install apache-airflow==2.2.1 --no-cache-dir --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.2.1/constraints-3.7.txt
注意使用对应Python 3.7的约束文件,这能避免Rich、Flask等依赖版本不匹配导致的异常。
4. 验证LocalExecutor配置
虽然你提到配置和生产环境一致,但升级后建议再次确认airflow.cfg中的LocalExecutor相关配置:
executor = LocalExecutor sql_alchemy_conn = <你的数据库连接串>
确保数据库连接正常,没有因为版本升级导致的数据库 schema 兼容性问题(可以运行airflow db check验证连接)。
内容的提问来源于stack exchange,提问作者RohitPorwal
相关产品推荐
相关产品推荐

