通过pip 包方式安装 airflow
pip3 install apache-airflow -i http://mirrors.aliyun.com/pypi/simple/
python3的话需要有pymysql包, 没有的话安装:
pip3 install pymysql -i http://mirrors.aliyun.com/pypi/simple/
在MySQL上配置airflow相关表
--创建数据库
create database airflow;
--将数据库airflow的所有权限授权airflow用户,密码''且该用户可在任何IP段登录操作
GRANT all privileges on airflow.* TO 'airflow'@'%' IDENTIFIED BY '你的密码';
--刷新权限
FLUSH PRIVILEGES;
--不配会报错: Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
use airflow;
set global explicit_defaults_for_timestamp = 1;
vim ~/airflow/airflow.cfg 修改airflow配置文件, 修改以下两项:
# 改为本地调度器(默认并发调度16)
executor = LocalExecutor
# 配置mysql
sql_alchemy_conn = mysql+pymysql://airflow:你的密码@127.0.0.1:3306/airflow
初始化数据库
-
若之前没有初始化
- airflow initdb
-
若之前初始化过
- airflow resetdb
遇到的一个Bug
sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1050, "Table 'dag_stats' already exists")
[SQL:
CREATE TABLE dag_stats (
dag_id VARCHAR(250) NOT NULL,
state VARCHAR(50) NOT NULL,
count INTEGER NOT NULL,
dirty BOOL NOT NULL,
PRIMARY KEY (dag_id, state),
CHECK (dirty IN (0, 1))
)
-
dag_stats表已经存在
-
解决方案:
use airflow; drop table dag_stats;
- 然后再airflow resetdb