本地部署Airflow后如何将开发的DAG推送至localhost:8080服务
Airflow本地部署后项目配置与DAG同步操作指南
关于DAG是否必须放在AIRFLOW_HOME目录的说明
默认配置下Airflow会读取C:\Users\{user}\airflowhome\dags路径下的DAG文件,但这不是强制要求,你可以通过修改配置自定义DAG扫描路径,适配你在PycharmProjects下的开发目录。
完整操作步骤
1. 前置依赖配置
- 先在PycharmProjects目录下创建你的Airflow项目结构,参考示例:
C:\Users\{user}\PycharmProjects\my_airflow_project ├── dags/ # 存放所有DAG文件 ├── plugins/ # 存放自定义插件、工具类 └── requirements.txt # 项目依赖声明文件
- 在requirements.txt中填写你项目需要的第三方依赖,比如pandas、sqlalchemy等,注意版本要和你部署的Airflow版本兼容。
- 激活你安装Airflow时使用的Python环境,执行
pip install -r C:\Users\{user}\PycharmProjects\my_airflow_project\requirements.txt完成依赖安装。
2. DAG同步到本地Airflow服务的两种方案
方案一:不改默认配置,手动同步
- 每次开发完DAG/插件后,将
C:\Users\{user}\PycharmProjects\my_airflow_project\dags下的所有文件复制到C:\Users\{user}\airflowhome\dags目录,插件则复制到C:\Users\{user}\airflowhome\plugins目录。 - Airflow默认每30秒扫描一次DAG目录,等待片刻后即可在localhost:8080的UI中看到新上传的DAG。如果未出现,可查看scheduler日志排查语法错误或依赖缺失问题。
方案二:修改配置实现开发目录自动同步(更推荐本地开发使用)
- 打开
C:\Users\{user}\airflowhome\airflow.cfg配置文件,找到dags_folder配置项,将默认值修改为你的开发目录下的dags路径,示例:
dags_folder = C:\Users\{user}\PycharmProjects\my_airflow_project\dags
- 如果有自定义插件,同步修改
plugins_folder配置项为你开发目录下的plugins路径。 - 保存配置后重启Airflow的scheduler和webserver服务,后续你在Pycharm中修改DAG保存后,Airflow扫描到变更会自动更新,无需手动复制文件。
注意事项
- 本地调试DAG可以直接执行命令
airflow dags test <你的DAG ID> <执行日期(格式为YYYY-MM-DD)>,无需等待调度触发。 - 如果你的DAG引用了项目内的自定义工具脚本,要么将脚本放到plugins目录,要么把项目根目录添加到系统PYTHONPATH中,避免出现导入报错。
内容的提问来源于stack exchange,提问作者Ryan Davies
相关产品推荐
相关产品推荐

