一、安装
1、新建一个虚拟环境
virtualenv airflowenv source airflowenv/bin/activate
2、安装airflow
需要等一段时间pip install airflow==1.8.0
3、查看安装结果
airflow version
出现如下则说明安装成功
____________ _____________ ____ |__( )_________ __/__ /________ __ ____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / / ___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ / _/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/ v1.8.0
4、cd 进入airflow文件夹
ls -al
有以下两个文件 -rw-r--r-- 1 *** staff 11602 8 28 18:06 airflow.cfg -rw-r--r-- 1 *** staff 1549 8 27 12:31 unittests.cfg
airflow.cfg有许多配置项,后面会作简单解释
5、初始化airflow数据库
airflow initdb 默认配置使用SQLLite,执行后在airflow文件夹生成一个airflow.db数据库文件(可以通过配置airflow.cfg的方式更改数据库类型如:mysql)
6、启动服务
airflow webserver -p 8080 执行之后在浏览器输入:localhost:8080/admin 结果如下所示:
安装工作结束
二、更改数据库为Mysql
1、安装MySQL,方法不限
pip install mysql-python
2、成功进入MySQL之后
新建用户 CREATE USER airflow; 新建数据库 CREATE DATABASE airflow; CREATE DATABASE celery_result_airflow; 给权限 GRANT all privileges on airflow.* TO 'airflow'@'%' IDENTIFIED BY 'airflow'; GRANT all privileges on celery_result_airflow.* TO 'airflow'@'%' IDENTIFIED BY 'airflow';
3、打开上文提到的airflow.cfg
将 sql_alchemy_conn,改为如下:sql_alchemy_conn = mysql://airflow:airflow@localhost:3306/airflow
初始化元数据库 airflow initdb 重置元数据库 airflow resetdb
三、启动airflow
运行命令(需要在不同窗口)
airflow webserver -p 8080 airflow scheduler #以非root用户运行 airflow worker
浏览器输入 localhost:8080/admin
(o゜▽゜)o☆[BINGO!]
四、实际项目中可能遇到的问题
如何打开已有项目
在 airflow.cfg文件中将 dags_folder 指向已有项目 原本为:dags_folder = /Users/liyuxing/airflow/dags 改为:dags_folder = /Users/liyuxing/work/mive/dags
如果需要添加自己的dags,在airflow目录下新建dags文件夹,并将文件放入文件夹即可,airflow会自己找。
报错 No module named pyutil.program.conf
‘*’号为Python版本 cd airflowenv/lib/python*.*/site-packages vim data.pth 在文件中一行,添加pyutil的路径(其他类似问题也可这样解决),如 /Users/liyuxing/work/util
执行 airflow webserver之后提示缺少Redis或者其他包
通通 pip install 缺啥装啥
schedule_interval 参数意义
官方文档