软件-Airflow安装与简单使用


一、安装

  • 1、新建一个虚拟环境

    1
    2
    virtualenv airflowenv
    source airflowenv/bin/activate
  • 2、安装airflow
    需要等一段时间

    1
    pip install airflow==1.8.0
  • 3、查看安装结果

    1
    airflow version

    出现如下则说明安装成功

    1
    2
    3
    4
    5
    6
    ____________       _____________
    ____ |__( )_________ __/__ /________ __
    ____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / /
    ___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ /
    _/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/
    v1.8.0
  • 4、cd 进入airflow文件夹

    1
    ls -al
    1
    2
    3
    有以下两个文件
    -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数据库

    1
    2
    airflow initdb
    默认配置使用SQLLite,执行后在airflow文件夹生成一个airflow.db数据库文件(可以通过配置airflow.cfg的方式更改数据库类型如:mysql)
  • 6、启动服务

    1
    2
    3
    airflow webserver -p 8080
    执行之后在浏览器输入:localhost:8080/admin
    结果如下所示:

    airflow

安装工作结束

二、更改数据库为Mysql

  • 1、安装MySQL,方法不限

    1
    pip install mysql-python
  • 2、成功进入MySQL之后

    1
    2
    3
    4
    5
    6
    7
    8
    9
    新建用户
    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,改为如下:

    1
    sql_alchemy_conn = mysql://airflow:airflow@localhost:3306/airflow
    1
    2
    3
    4
    初始化元数据库
    airflow initdb
    重置元数据库
    airflow resetdb

三、启动airflow

  • 运行命令(需要在不同窗口)

    1
    2
    3
    4
    5
    airflow webserver -p 8080
    airflow scheduler

    以非root用户运行
    airflow worker
  • 浏览器输入 localhost:8080/admin

  • (o゜▽゜)o☆[BINGO!]

四、实际项目中可能遇到的问题

  • 如何打开已有项目

    1
    2
    3
    在 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

    1
    2
    3
    4
    5
    6
    ‘*’号为Python版本
    cd airflowenv/lib/python*.*/site-packages
    vim data.pth

    在文件中一行,添加pyutil的路径(其他类似问题也可这样解决),如
    /Users/liyuxing/work/util
  • 执行 airflow webserver之后提示缺少Redis或者其他包

    1
    2
    通通
    pip install 缺啥装啥
  • schedule_interval 参数意义
    官方文档


  目录