Apache Airflow 2.0 发布,Airbnb 开源的调度系统

栏目: 软件资讯 · 发布时间: 5年前

内容简介:Apache Airflow 2.0.0 已正式发布,Airflow 是一个灵活、可扩展的工作流自动化和调度系统,可编集和管理数百 PB 的数据流。项目可轻松编排复杂的计算工作流,通过智能调度、数据库和依赖关系管理、错误处理和日志...

Apache Airflow 2.0.0 已正式发布,Airflow 是一个灵活、可扩展的工作流自动化和调度系统,可编集和管理数百 PB 的数据流。项目可轻松编排复杂的计算工作流,通过智能调度、数据库和依赖关系管理、错误处理和日志记录,Airflow 可以对从单个服务器到大规模集群的资源进行自动化管理。Airflow 采用 Python 编写,具有高扩展性,能够运行其他语言编写的任务,并允许与常用的体系结构和项目集成,如 AWS S3、 Docker 、Kubernetes、 MySQL 、PostgresSQL 等。

下面简单介绍 2.0 版本的主要新特性。

更新 UI

Airflow 2.0 对 UI 进行了重大更新,并升级了部分样式。

Apache Airflow 2.0 发布,Airbnb 开源的调度系统

引入编写 dag(有向无环图)的新方法:TaskFlow API

新的方法对依赖关系的处理更清晰,XCom 也更易于使用。

示例

from airflow.decorators import dag, task
from airflow.utils.dates import days_ago

@dag(default_args={'owner': 'airflow'}, schedule_interval=None, start_date=days_ago(2))
def tutorial_taskflow_api_etl():
   @task
   def extract():
       return {"1001": 301.27, "1002": 433.21, "1003": 502.22}

   @task
   def transform(order_data_dict: dict) -> dict:
       total_order_value = 0

       for value in order_data_dict.values():
           total_order_value += value

       return {"total_order_value": total_order_value}

   @task()
   def load(total_order_value: float):

       print("Total order value is: %.2f" % total_order_value)

   order_data = extract()
   order_summary = transform(order_data)
   load(order_summary["total_order_value"])

tutorial_etl_dag = tutorial_taskflow_api_etl()

详情查看
TaskFlow API Tutorial
TaskFlow API Documentation

提升 Scheduler 性能

2.0 版本提升了 Airflow Scheduler 性能,启动任务的速度明显变快。在 Astronomer.io 上对此 Scheduler 进行基准测试的结果显示,它的速度快到连开发者都怀疑结果出错了。

Apache Airflow 2.0 发布,Airbnb 开源的调度系统

Scheduler 现已兼容 HA

支持运行多个 scheduler 实例,这对于弹性使用(如果 scheduler 发生故障)和调度性能都非常有意义。若希望完全使用此功能,需要 Postgres 9.6+ 或 MySQL 8+(MySQL 5 和 MariaDB 可能无法使用多个 scheduler)。

运行多个 scheduler 不需要任何配置或其他设置,只需在其他地方启动 scheduler (确保它可以访问 DAG 文件),它将通过数据库与现有的 scheduler 配合使用。

详情查看 Scheduler HA 文档

简化 KubernetesExecutor

Airflow 2.0 重新建立了 KubernetesExecutor 架构,为 Airflow 用户提供更快、更容易理解和更灵活的使用方式。用户现在可以访问完整的 Kubernetes API 来创建一个 .yaml  pod_template_file,而不是在 airflow.cfg 中指定参数。

此外还用pod_override参数替换了executor_config词典,此项变化从 KubernetesExecutor 删除了三千多行代码,使其运行速度更快,并减少潜在错误。

详情查看
Docs on pod_template_file
Docs on pod_override

完整发布公告 https://airflow.apache.org/blog/airflow-two-point-oh-is-here/


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

知识发现

知识发现

史忠植 / 2011-1 / 59.00元

《知识发现(第2版)》全面而又系统地介绍了知识发现的方法和技术,反映了当前知识发现研究的最新成果和进展。全书共分15章。第1章是绪论,概述知识发现的重要概念和发展过程。下面三章重点讨论分类问题,包括决策树、支持向量机和迁移学习。第5章阐述聚类分析。第6章是关联规则。第7章讨论粗糙集和粒度计算。第8章介绍神经网络,书中着重介绍几种实用的算法。第9章探讨贝叶斯网络。第10章讨论隐马尔可夫模型。第11章......一起来看看 《知识发现》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试