启动Airflow webserver报错无法连接0.0.0.0:8080端口故障求助
Airflow 2.0.2 启动webserver失败解决方案
从报错日志可以定位到三类核心问题:依赖包缺失导致的导入警告、8080端口未真正释放、未创建初始管理员用户,对应解决方案如下:
第一步:彻底释放占用端口
freeport命令可能没有真正杀死占用端口的进程,手动操作如下:
- Linux/macOS 执行:
# 查找占用8080端口的进程ID lsof -i:8080 # 杀死对应进程,替换<pid>为上一步查到的进程号 kill -9 <pid>
- Windows 执行:
# 查找占用8080端口的进程ID netstat -ano | findstr "8080" # 杀死对应进程,替换<pid>为上一步查到的进程号 taskkill /F /PID <pid>
如果还是提示端口占用,可以直接换用其他未被占用的端口启动,比如8081:airflow webserver --port 8081
第二步:安装缺失依赖包
日志中的警告是因为google相关provider依赖的组件未安装,执行以下命令安装缺失包:
pip install apache-airflow-providers-mysql paramiko
如果不需要用到google cloud相关的provider功能,也可以直接卸载该包消除警告:
pip uninstall apache-airflow-providers-google -y
第三步:创建管理员用户
日志明确提示未创建用户,启动webserver前先执行以下命令创建管理员账号,可按需替换参数:
airflow users create \ --username admin \ --firstname Admin \ --lastname User \ --role Admin \ --email admin@example.com \ --password admin123
第四步:重新启动服务
Airflow 2.x需要同时运行webserver和scheduler才能正常使用,按顺序执行启动命令:
# 后台启动scheduler airflow scheduler -D # 后台启动webserver,端口可按实际情况修改 airflow webserver -p 8080 -D
启动后访问对应端口即可进入Airflow控制台,使用刚才创建的管理员账号登录。
内容的提问来源于stack exchange,提问作者sai
相关产品推荐
相关产品推荐

