Apache Airflow 不支持直接在 Windows 上运行的主要原因
- 依赖性问题
如遇到 ModuleNotFoundError: No module named ‘fcntl’ 错误是因为 fcntl 模块在 Windows 平台上不可用。这个模块是用于 Unix 系统中的文件控制操作的,而在 Windows 上是不支持的。 - 文件系统和路径问题
Airflow 在处理文件路径和系统调用时,假设使用的是类 Unix 系统的文件路径格式(例如,使用斜杠 / 而不是反斜杠 \)。虽然可以通过代码修改来适配 Windows 的文件路径,但这会导致代码复杂化和潜在的兼容性问题
解决方案:借助Docker在Windows上运行
-
安装Docker Desktop
- 官方下载地址:https://docs.docker.com/desktop/install/windows-install/
- 官方下载地址:https://docs.docker.com/desktop/install/windows-install/
-
Docker Desktop安装成功截图
-
拉取Apache/Airflow镜像
-
cmd输入指令启动容器(这里以单例模式举例)
docker run -it --rm --name airflow-devel -p 8080:8080 apache/airflow airflow standalone
-
启动成功后打开localhost:8080,默认用户名是admin,默认密码会打印在日志中
开发方式
这里以DAG开发举例
-
找到上述创建的容器
-
上传DAG文件到容器,默认DAG文件的存储路径为:/opt/airflow/dags
docker cp quick_test_dag.py airflow-devel:/opt/airflow/dags
-
进入容器命令行界面(bash)
-
输入指令测试dag
airflow dags test quick_test_dag
-
查看执行记录