前言
- 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/bash sudo passwd airflow
-
切换账号
su airflow
-
配置 Anaconda 环境变量
# ~/.bashrc export 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