在Anaconda环境下安装Apache Airflow以进行定时任务管理:安装篇

Catálogo

本文将介绍如何在Anaconda环境下安装和配置Apache Airflow,用于管理和调度定时任务。以下是主要步骤:

  1. 在Anaconda的base环境或者自定义的环境下,通过pip安装typing_extensionsapache-airflow包。

    1
    2
    pip install typing_extensions
    pip install apache-airflow
  2. 创建一个目录来存放Airflow的数据,并将这个目录的路径设置为环境变量AIRFLOW_HOME

    1
    2
    mkdir <where you want to put airflow data in>
    export AIRFLOW_HOME=<where you want to put airflow data in>
  3. 运行airflow scheduler命令,然后退出。这将在$AIRFLOW_HOME目录下创建基础的文件。

    1
    airflow scheduler
  4. 运行airflow db migrate命令来初始化数据库,然后创建一个用户。

    1
    2
    airflow db migrate
    airflow users create --username airflow --role Admin -f xxx -l xxx -e xxx@xxx.com

    这会在AIRFLOW_HOME下面创建一个名为airflow.dbsqlite3文件。

  5. 运行airflow schedulerairflow webserver命令来分别启动定时器后台和网页服务。你可以选择使用nohup命令来使这些服务在后台运行。

    1
    2
    nohup airflow scheduler > scheduler.log 2>&1 &
    nohup airflow webserver > webserver.log 2>&1 &
  6. 通过浏览器访问http://localhost:8080来管理定时任务。Airflow已经提供了多个例子,你可以参考这些例子来配置自己的定时任务。

    • 在浏览器的管理页面会看到一个警告,让避免使用SequentialExecutor,这是因为SequentialExecutor会使用airflow的主进程顺序执行所有任务,导致每个任务都会卡住scheduler。虽然不知道为啥官方要默认到SequentialExecutor,不过解决方案很简单,到$AIRFLOW_HOME/airflow.cfg文件中找到
    1
    executor = SequentialExecutor

    改成

    1
    executor = LocalExecutor

    并重启airflow scheduler服务就可以了。