架构组成

参考文档:Architecture Overview — Airflow Documentation

  • Webserver:用户界面,它提供了一个方便的用户界面来检查、触发和调试DAG和任务的行为。
  • Scheduler:调度器,使用 DAG 定义结合元数据中的任务状态来决定哪些任务需要被执行以及任务执行优先级的过程。调度器通常作为服务运行。
  • Executor:执行器,是一个消息队列进程,它被绑定到调度器中,用于确定实际执行每个任务计划的工作进程。有不同类型的执行器,每个执行器都使用一个指定工作进程的类来执行任务。
  • Metadata Database:元数据库,用于存储调度器、执行器、和Web服务的数据状态
  • Workers:工作节点,实际执行任务逻辑的进程,由正在使用的执行器确定

DAG

 DAG(Directed Acyclic Graph)有向无环图,是Airflow的核心概念之一,DAG体现的是你的工作流,它由Python脚本定义,其中包含了你想要运行的一系列task,同时其中还定义了这些task的依赖关系。 DAG代表了一个供调度的工作流,它的主要配置项包括owner,schedule。DAG支持多种调度方式,你可以指定该DAG定时调度,如每天的5am,也可以指定它周期性调度,如每二十分钟调度一次。 DAG由其中的task组成。例如,一个简单的DAG可以包括三个任务:A,B,C。我们可以让B依赖于A,在A成功执行之后运行B,而C可以在任意时候运行。需要注意的是,DAG本身并不关注A,B,C三个任务的具体内容,它关注的是三个任务的执行顺序以及依赖条件。