快速入门¶
本快速入门指南将帮助您在本地机器上引导 Airflow 独立实例。
注意
成功安装需要 Python 3 环境。从 Airflow 2.7.0 开始,Airflow 支持 Python 3.8、3.9、3.10、3.11 和 3.12。
目前官方仅支持 pip
安装。
虽然使用 poetry 或 pip-tools 等其他工具已经取得了一些成功,但它们与 pip
的工作流程并不相同,尤其是在约束与需求管理方面。目前不支持通过 Poetry
或 pip-tools
进行安装。
bazel
存在已知问题,在使用它安装 Airflow 时可能会导致循环依赖。如果遇到此类问题,请切换到 pip
。Bazel
社区正在 此 PR 中努力解决该问题,因此较新版本的 bazel
可能会处理它。
如果您希望使用这些工具安装 Airflow,则应使用约束文件并将它们转换为您的工具所需的适当格式和工作流程。
如果您按照以下说明进行操作,安装 Airflow 非常简单。Airflow 使用约束文件来实现可重复安装,因此建议使用 pip
和约束文件。
设置 Airflow 主目录(可选)
Airflow 需要一个主目录,默认情况下使用
~/airflow
,但如果您愿意,也可以设置其他位置。AIRFLOW_HOME
环境变量用于通知 Airflow 所需的位置。设置环境变量的步骤应在安装 Airflow 之前完成,以便安装过程知道将必要文件存储在何处。export AIRFLOW_HOME=~/airflow
使用约束文件安装 Airflow,该文件根据我们传递的 URL 确定
AIRFLOW_VERSION=2.9.2 # 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.9.2 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.9.2/constraints-3.8.txt pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
运行 Airflow 独立版
airflow standalone
命令会初始化数据库、创建用户并启动所有组件。airflow standalone
访问 Airflow 用户界面
在浏览器中访问
localhost:8080
并使用终端中显示的管理员帐户详细信息登录。在主页中启用example_bash_operator
DAG。
运行这些命令后,Airflow 将创建 $AIRFLOW_HOME
文件夹并创建“airflow.cfg”文件,其中包含可帮助您快速上手的默认值。您可以使用环境变量覆盖默认值,请参阅 配置参考。您可以在 $AIRFLOW_HOME/airflow.cfg
中或通过 管理员->配置
菜单中的用户界面检查该文件。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 [email protected]
airflow webserver --port 8080
airflow scheduler