前提条件需要安装 Docker 和 Docker-compose,作者用的是 Mac 系统安装的 Airflow。
新建 Airflow 文件夹
创建三个文件夹用于存储 Airflow 的数据:
- /Users/xuew/Environment/Airflow/dags
- /Users/xuew/Environment/Airflow/logs
- /Users/xuew/Environment/Airflow/plugins
获取当前的用户 ID,并输出到环境变量。
echo -e "AIRFLOW_UID=$(id -u)" > .env
创建 docker-compose
可以直接从官网获取:https://airflow.apache.org/docs/apache-airflow/2.6.0/docker-compose.yaml,但是下载后需要修改部分内容,比如数据卷。
我修改好的 docker-compose 如下:
启动 Airflow
# 前台启动(建议第一次运行使用前台启动,方便查看日志) docker-compose up # 后台启动 docker-compose up -d
关闭 Airflow
# 关闭 Airflow docker-compose down
其他命令
# 启动 Airflow 服务 docker-compose up # 后台启动 Airflow 服务 docker-compose up -d # 停止 Airflow 服务 docker-compose down # 列出正在运行的 Airflow 容器 docker ps # 查看镜像 docker images # 查看 Docker 状态 systemctl status docker # 进入某个 Airflow 容器的终端 docker exec -it <container_name> bash # 显示 Airflow 服务的日志,-f 参数表示实时跟踪日志,service_name 参数表示服务名,默认为所有服务。 docker-compose logs [-f] [service_name] # 构建 Airflow 镜像 docker-compose build # 清除未使用的镜像、容器、网络和卷 docker system prune # 查看 Airflow 所在的网络 IP 地址,irflow-stack_airflow-net 表示 Docker Compose 文件中定义的 Airflow 网络名 docker network inspect airflow-stack_airflow-net | grep Gateway # Docker 保存镜像 docker save -o airflow2.tar apache/airflow:2.6.0 # tar 文件导入到另一台机器上 docker load -i airflow2.tar
验证 Airflow
使用浏览器访问 http://localhost:8080。登录名和密码都是 airflow。
接下来就可以在 /Users/xuew/Environment/Airflow/dags 目录下创建 Dag 脚本了。