快速入门

本快速入门指南将帮助您在本地机器上引导一个 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 时导致循环依赖。如果遇到此类问题,请切换到 pipBazel 社区正在 此 PR 中努力修复该问题,因此较新版本的 bazel 可能会处理此问题。

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

如果您按照以下说明进行操作,Airflow 的安装非常简单。Airflow 使用约束文件来实现可重现的安装,因此建议使用 pip 和约束文件。

  1. 设置 Airflow Home(可选)

    Airflow 需要一个主目录,默认使用 ~/airflow,但如果您愿意,可以设置不同的位置。AIRFLOW_HOME 环境变量用于通知 Airflow 所需的位置。在安装 Airflow 之前应完成设置环境变量的此步骤,以便安装过程知道将必要的文件存储在哪里。

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

    AIRFLOW_VERSION=2.10.4
    
    # Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually.
    # See above for supported versions.
    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"
    # For example this would install 2.10.4 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.8.txt
    
    pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
    
  3. 运行 Airflow 独立模式

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

    airflow standalone
    
  4. 访问 Airflow UI

    在浏览器中访问 localhost:8080,并使用终端中显示的管理员帐户详细信息登录。在主页中启用 example_bash_operator DAG。

运行这些命令后,Airflow 将创建 $AIRFLOW_HOME 文件夹,并使用默认值创建 “airflow.cfg” 文件,这将使您快速入门。您可以使用环境变量覆盖默认值,请参阅配置参考。您可以检查 $AIRFLOW_HOME/airflow.cfg 中的文件,也可以通过 UI 中的 管理->配置 菜单检查该文件。Web 服务器的 PID 文件将存储在 $AIRFLOW_HOME/airflow-webserver.pid 中,如果由 systemd 启动,则存储在 /run/airflow/webserver.pid 中。

Airflow 开箱即用使用 SQLite 数据库,由于使用此数据库后端无法进行并行化,因此您应该很快就会超越它。它与 SequentialExecutor 结合使用,后者只会按顺序运行任务实例。虽然这非常有限制,但它允许您快速启动并运行,并浏览 UI 和命令行实用程序。

随着您的发展并将 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 [email protected]

airflow webserver --port 8080

airflow scheduler

下一步是什么?

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

此条目是否有帮助?