airflow安装文档

通过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 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

猜你喜欢

转载自www.cnblogs.com/ronnieyuan/p/12668485.html