前提条件需要安装 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 脚本了。