airflow multi scheduler

支持版本

需要Airflow2.0以上

额外配置

应该是不需要任何的额外配置,在helm里面能看到
在这里插入图片描述

都是直接在deployment里面填replica数量

实现方式

多个scheduler实例主要矛盾点在如何通讯上面,airflow2用的是Mysql的行锁。同时只会有一个scheduler处理一个dag。

具体代码

jobs/scheduler_job.py

_do_scheduling() {
	self._create_dagruns_for_dags() #从dag生成dagrun
}

_create_dagruns_for_dags() {
	DagModel.dags_needing_dagruns(session)
}

models/dag.py

with_row_locks(query, of=cls, session=session, **skip_locked(session=session))

主要就是with_row_locks函数
在这里插入图片描述

这里需要注意需要在airflow.cfg里面把这个配置设置成True,并且airflow的数据库版本需要支持FOR UPDATE
在这里插入图片描述

启动

如果这些都符合条件的话,应该就直接可以启动多个scheduler实例。

### 不同工作流管理系统特性对比 #### Apache Airflow 特性 Apache Airflow 是一个开源的工作流编排平台,允许定义、调度和监控复杂的数据管道。Airflow 使用 Python 编写的 DAG (Directed Acyclic Graphs) 来表示任务流程,并支持种执行环境,包括本地机器、Kubernetes 集群以及云服务提供商。 - **灵活性**: 支持复杂的依赖关系管理和动态构建DAG[^2]. - **社区活跃度**: 拥有一个庞大而活跃的开发者社区. - **扩展能力**: 提供丰富的插件机制以便集成第三方工具和服务. ```python from airflow import DAG from datetime import timedelta import pendulum default_args = { 'owner': 'airflow', 'depends_on_past': False, } dag = DAG( dag_id='example_dag', default_args=default_args, schedule_interval=timedelta(days=1), start_date=pendulum.datetime(2023, 1, 1)) ``` #### Azkaban 特性 Azkaban 是由 LinkedIn 开发并开源的一个批处理作业调度系统,主要用于解决 Hadoop 作业间的依赖问题。它通过图形界面让用户可以轻松配置和管理个相互关联的任务链路。 - **易用性**: Web UI 友好,适合不具备编程背景的操作人员使用. - **稳定性**: 经过大规模生产验证,在LinkedIn内部得到广泛应用和发展. - **专属性能优化**: 对于MapReduce 和 Pig Latin 类型的大数据处理任务进行了特别优化[^1]. #### DolphinScheduler 特性 DolphinScheduler 是一款企业级分布式定时任务调度框架,具有高可用性和可视化操作的特点。其设计目标是为了满足企业在日常运营过程中对于各类异构计算资源的有效利用需求。 - **租户架构**: 支持不同部门或团队在同一平台上独立创建维护自己的项目空间. - **安全性保障**: 内置权限管理体系确保敏感信息的安全访问控制. - **跨集群协作**: 能够协调分布在不同物理位置上的计算节点共同完成大型工作任务. | 功能模块 | Airflow | Azkaban | DolphinScheduler | | --- | --- | --- | --- | | 用户界面友好程度 | 中等 | 较好 | 极佳 | | 社区支持力度 | 大量贡献者参与开发 | 原厂持续更新迭代 | 积极响应用户反馈 | | 数据源连接种类 | 广泛兼容各种数据库/存储方案 | 主要面向HDFS/Hive/MR场景 | 支持更类型的外部接口 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值