目录
Airflow架构及原理
一、Airflow架构
二、Airflow术语
三、Airflow工作原理
Airflow架构及原理 一、Airflow架构 Airflow我们可以构建Workflow工作流 , 工作流使用DAG有向无环图来表示 , DAG指定了任务之间的关系 , 如下图:
Airflow架构图如下:
Airflow在运行时有很多守护进程 , 这些进程提供了airflow全部功能 , 守护进程包括如下:
- webserver:
- Scheduler:
- Executor:
在Airflow中执行器有很多种选择 , 最关键的执行器有以下几种:
- SequentialExecutor:默认执行器 , 单进程顺序执行任务 , 通常只用于测试 。
- LocalExecutor:多进程本地执行任务 。
- CeleryExecutor:分布式执行任务 , 多用于生产场景 , 使用时需要配置消息队列 。
- DaskExecutor:动态任务调度 , 支持远程集群执行airflow任务 。
关于不同Executor类型可以参考官网:https://airflow.apache.org/docs/apache-airflow/stable/executor/index.htmlhttps://airflow.apache.org/docs/apache-airflow/stable/executor/index.html
- work:
- DAG Directory:
- metadata database:
二、Airflow术语
- DAG
- Operators
- Task
- Task Instance
- Task Relationships:
三、Airflow工作原理 airflow中各个进程彼此之间是独立不互相依赖 , 也不互相感知 , 每个进程在运行时只处理分配到自身的任务 , 各个进程在一起运行 , 提供了Airflow全部功能 , 其工作原理如下:
- 调度器Scheduler会间隔性轮询元数据库(Metastore)已注册的DAG有向无环图作业流 , 决定是否执行DAG , 如果一个DAG根据其调度计划需要执行 , Scheduler会调度当前DAG并触发DAG内部task , 这里的触发其实并不是真正的去执行任务 , 而是推送task消息到消息队列中 , 每一个task消息都包含此task的DAG ID,Task ID以及具体需要执行的函数 , 如果task执行的是bash脚本 , 那么task消息还会包含bash脚本代码 。
- Worker进程将会监听消息队列 , 如果有消息就从消息队列中获取消息并执行DAG中的task , 如果成功将状态更新为成功 , 否则更新成失败 。
- 用户可以通过webserver webui来控制DAG , 比如手动触发一个DAG去执行 , 手动触发DAG与自动触发DAG执行过程都一样 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
