乐趣区

关于airflow:airflow-2x-安装记录qbit

前言

  • 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

退出移动版