快速入门

本快速入门指南将帮助您在本地机器上启动一个Airflow独立实例。

注意

成功安装需要Python 3环境。从Airflow 2.7.0开始,Airflow支持Python 3.8、3.9、3.10、3.11和3.12版本。

目前仅官方支持pip安装方式。

虽然使用其他工具如poetrypip-tools已取得一些成功,但它们与pip的工作流程并不相同——特别是在约束条件与需求管理方面。目前不支持通过Poetrypip-tools进行安装。

已知在使用bazel安装Airflow时可能会出现循环依赖问题。如遇此类问题,请改用pip安装。Bazel社区正在通过这个PR修复该问题,因此新版bazel可能会解决此问题。

如果您希望使用这些工具安装Airflow,您应该使用约束文件并将其转换为您的工具所需的适当格式和工作流程。

按照以下说明安装Airflow非常简单。Airflow使用约束文件来实现可复现的安装,因此建议使用pip和约束文件。

  1. 设置Airflow主目录(可选):

    Airflow需要一个主目录,默认使用~/airflow,但您可以根据需要设置其他位置。AIRFLOW_HOME环境变量用于告知Airflow所需的位置。设置此环境变量的步骤应在安装Airflow之前完成,以便安装过程知道将必要文件存储在何处。

    export AIRFLOW_HOME=~/airflow
    
  2. 使用约束文件安装Airflow,该文件根据我们传递的URL确定:

    AIRFLOW_VERSION=2.10.5
    
    # 提取您已安装的Python版本。如果您当前使用的Python版本不受Airflow支持,可能需要手动设置此值。
    # 支持的版本请参见上文。
    PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
    
    CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
    # 例如,这将安装2.10.5版本与python 3.8:https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.8.txt
    
    pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
    
  3. 运行Airflow独立模式:

    airflow standalone命令会初始化数据库、创建用户并启动所有组件。

    airflow standalone
    
  4. 访问Airflow用户界面:

    在浏览器中访问localhost:8080,使用终端显示的admin账户信息登录。在主页启用example_bash_operator DAG。

运行这些命令后,Airflow将创建$AIRFLOW_HOME文件夹 并生成带有默认设置的"airflow.cfg"文件,以便快速启动。 您可以通过环境变量覆盖默认值,详见Configuration Reference。 您可以在$AIRFLOW_HOME/airflow.cfg中查看该文件,或通过UI中的 Admin->Configuration菜单。Web服务器的PID文件将存储在 $AIRFLOW_HOME/airflow-webserver.pid中,如果由systemd启动则会存储在 /run/airflow/webserver.pid中。

开箱即用,Airflow默认使用SQLite数据库,但由于该数据库后端不支持并行处理,您很快就会需要升级。它与SequentialExecutor配合使用,该执行器仅能顺序运行任务实例。虽然这种配置限制很大,但它能让您快速上手,并体验用户界面和命令行工具。

随着您的发展并将Airflow部署到生产环境,您也会希望从我们这里使用的standalone命令转向单独运行各个组件。您可以在生产部署中了解更多信息。

以下是几个会触发若干任务实例的命令。当您运行以下命令时,应该能在example_bash_operator DAG中看到作业状态的变化。

# run your first task instance
airflow tasks test example_bash_operator runme_0 2015-01-01
# run a backfill over 2 days
airflow dags backfill example_bash_operator \
    --start-date 2015-01-01 \
    --end-date 2015-01-02

如果您希望手动运行Airflow的各个组件,而不是使用一体化的standalone命令,您可以改为运行:

airflow db migrate

airflow users create \
    --username admin \
    --firstname Peter \
    --lastname Parker \
    --role Admin \
    --email spiderman@superhero.org

airflow webserver --port 8080

airflow scheduler

下一步是什么?

从这里开始,您可以前往教程部分查看更多示例,或者如果您准备好动手实践,可以进入操作指南部分。

这篇内容对您有帮助吗?