AirFlow介绍

介绍

 Airbnb开源的一款调度工具,核心特征是分布式、基于工作流,此外还提供了UI方便管理和监控,可看做crontab的升级版,功能更加丰富和完善;

核心概念

  • DAG:WorkFlow的定义,调度的基本单元,由若干存在依赖关系的Task组成;
  • Task:DAG中一个节点,即具体的某个调度任务;
  • Operator:任务的定义,包括任务类型、执行逻辑等等;
    AirFlow介绍_第1张图片AirFlow介绍_第2张图片

架构图

 Master-Slave架构,存在两种主要角色Seheduler和Executor,以及辅助角色WebServer,如下图所示:

  • Seheduler:调度器,周期性地轮询元数据库,筛选需要被执行的DAG(同一时间只能存在一个);
  • Executor:执行器,负责任务的执行;
  • WebServer:WEB服务器,为前端提供监控管理调度任务的能力;
    AirFlow介绍_第3张图片

HA说明

  • Worker Node:以集群的形式存在,而且可以很方便的扩容缩容,避免单点问题;
  • Master Node:需要借助第三方组件airflow-scheduler-failover-controller实现HA,部署一台备用节点,正常情况下只启动主节点的Seheduler,主节点宕机时,通过组件启动备用节点的Seheduler;(官方并没有给出HA的方案)
  • 元数据库:数据库需要主备部署;

性能瓶颈

  • 随着节点数量的增加,数据库的压力会越来越大,成为瓶颈点;

优化建议

  • DAG使用python代码定义,可提供可视化的方案降低使用门槛,以及提升使用效率;

参考:

  1. 架构图来源:https://zhuanlan.zhihu.com/p/44768244
  2. DAG可视化:https://www.jianshu.com/p/e878bbc9ead2

你可能感兴趣的:(杂谈)