前言
- airflow 是 DAG(有向无环图)的工作管理系统,简略的了解就是一个高级版的 crontab。
- airflow 解决了 crontab 无奈解决的工作依赖问题。
环境与组件
- Ubuntu 20.04
- Python-3.8(Anaconda3-2020.11-Linux-x86_64)
- MySQL 8.0
- apache-airflow 2.0.2
装置步骤
创立账号
sudo useradd airflow -m -s /bin/bashsudo passwd airflow
切换账号
su airflow
配置 Anaconda 环境变量
# ~/.bashrcexport PATH=/anaconda/anaconda3/bin:$PATH
配置 pip 国内镜像
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
装置 airflow
# 全家桶(master)pip3 install "apache-airflow[all]~=2.0.2"# OR 选择性装置pip3 install "apache-airflow[async,mysql,rabbitmq,celery,dask]~=2.0.2"
为 airflow 增加 PATH 环境变量
# 在 /home/airflow/.bashrc 文件尾追加以下内容:export PATH=/home/airflow/.local/bin:$PATH
查看 airflow 版本并创立 airflow 的 HOME 目录
# 默认 ~/airflow 目录airflow version
设置 Ubuntu 零碎时区
timedatectl set-timezone Asia/Shanghai
- 至此,装置结束
MySQL 配置
创立数据库和用户
CREATE DATABASE airflow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创立用户
CREATE USER 'airflow_user' IDENTIFIED BY 'airflow_pass';GRANT ALL PRIVILEGES ON airflow.* TO 'airflow_user';
批改 MySQL 连贯(/home/airflow/airflow/airflow.cfg)
[core]# MySQL 连贯字符串sql_alchemy_conn = mysql+pymysql://airflow_user:airflow_pass@192.168.x.y/airflow# 设置编码sql_engine_collation_for_ids=utf8mb3_general_ci
装置 pymysql
pip3 install pymysql
初始化数据库表
airflow db init
- 查看数据库是否初始化胜利
本文出自 qbit snap