Apache Airflow快速入门

Airflow快速入门

本文会指导你在本地环境启动一个Airflow的单例应用

注意事项
安装需要Python3环境。自Airflow2.7.0开始,支持Python 3.8、 3.9、 3.10、 3.11 以及 3.12
目前只有`pip`安装是官方支持的
虽然使用其他工具如 poetry 或者 pip-tools也能安装,但是他们的工作流与pip不一致,尤其是约束与需求的管理。因此poetry 或者 pip-tools的安装方式当前不被官方支持
已知使用bazel安装airflow可能会遇到循环依赖的问题。如果你遇到了就改用pip安装。bazel社区已经在想办法修复该问题,可能在未来版本解决。

参考本文,Airflow的安装就很简单。Airflow通过约束文件来支持重复安装,因此推荐使用pip和约束文件进行安装。

  1. 设置Airflow安装目录(可选)
    Airflow使用~/airflow作为默认安装目录,你也可以通过设置AIRFLOW_HOME变量来自定义位置。注意设置安装目录必须在安装之前。
    export AIRFLOW_HOME=~/airflow

  2. 使用官方定义的约束文件安装Airflow

    AIRFLOW_VERSION=2.9.1
    
    # 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.1 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt
    
    pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
    
  3. 启动Airflow单例应用
    airflow standalone
    该指令包括了初始化数据库,创建admin用户,以及启动所有的组件

  4. 打开Airflow UI页面
    在浏览器访问 localhost:8080,登录admin用户,admin用户的账号信息会打印在在控制台。在首页面启动DAGexample_bash_operator

执行完上述指令,Airflow会在$AIRFLOW_HOME目录下创建airflow.cfg文件,文件中包含了默认的配置信息,便于你快速上手。你可以通过环境变量覆盖这些默认配置,详见 官方配置文档。你可以在$AIRFLOW_HOME/airflow.cfg或者页面菜单Admin->Configuration查看配置信息。webserver的PID文件会存储在$AIRFLOW_HOME/airflow-webserver.pid,如果是通过systemd启动的,则存储在/run/airflow/webserver.pid

默认情况下,Airflow使用SQLite作为数据库,但是你应该很快就会弃用它,因为它不支持后端的并发处理。它通过SequentialExecutor协同工作,串行执行任务队列。不过即使它性能很差,但是能够让你快速的启动应用,并认识了解UI页面及指令

随着你越来越深入了解,以及部署生产应用,你将要脱离现在使用的standalone指令,详见生产部署

这里给一些触发task实例的指令,运行这些指令可以让你能够看到example_bash_operatorDAG的工作过程及状态变化:

# 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

参考

https://airflow.apache.org/docs/apache-airflow/stable/start.html

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Airflow是一个开源的工作流程管理平台,用于将任务以有序的方式进行调度和执行。实战Apache Airflow可以帮助我们更好地管理和监控数据流和任务的运行。 首先,我们可以使用Apache Airflow创建和定义任务的工作流程。通过编写代码,我们可以定义任务之间的依赖关系并设置任务的调度时间。这使得我们能够更好地组织和安排任务的执行顺序,以确保任务按照我们期望的方式进行。 其次,Apache Airflow提供了一个直观的用户界面,通过该界面我们可以轻松地查看和监控任务的运行情况。我们可以查看任务的调度时间、执行结果和任务之间的依赖关系,以及任务的日志记录。这样,我们可以即时获取任务执行的状态和进展,及时发现并解决问题。 此外,Apache Airflow还提供了一种灵活的方式来处理任务失败和重试。我们可以配置任务的重试次数和重试间隔,在任务失败时自动进行重试,以确保任务最终成功完成。这大大提高了任务的容错性和稳定性。 最后,Apache Airflow还提供了丰富的插件和扩展性,可以与其他工具和服务进行集成。我们可以通过插件来连接和操作不同的数据源,例如数据库、文件系统或云存储。这使得我们能够更方便地进行数据处理和分析,提高工作效率。 总而言之,Apache Airflow是一个功能强大的工作流程管理平台,可以帮助我们更好地组织、调度和监控任务的执行。通过实战Apache Airflow,我们可以提高任务的可靠性和效率,以及更好地处理和分析数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值