简介
airflow是airbnb家的基于DAG(有向无环图)的任务管理系统, 最简单的理解就是一个高级版的crontab。它解决了crontab无法解决的任务依赖问题。
类似产品比较
系统
介绍
Apache Oozie
使用XML配置, Oozie任务的资源文件都必须存放在HDFS上. 配置不方便同时也只能用于Hadoop.
Linkedin Azkaban
web界面尤其很赞, 使用java properties文件维护任务依赖关系, 任务资源文件需要打包成zip, 部署不是很方便.
airflow
具有自己的web任务管理界面,dag任务创建通过python代码,可以保证其灵活性和适应性
web界面使用介绍
DAGS
启动web任务管理需要执行airflow websever -D命令,默认端口是8080
http://10.191.76.31:8080/admin/
image.png
DAG
dag_id
Schedule
调度时间
Owner
dag拥有者
Recent Tasks
这里包含9个圆圈,每个圆圈代表task的执行状态和次数
圈1 success:现实成功的task数,基本上就是该tag包含多少个task,这里基本上就显示几。
圈2 running:正在运行的task数
圈3 failed:失败的task数
圈4 unstream_failed:
圈5 skipped:跳过的task数
圈6 up_for_retry:执行失败的task,重新执行的task数
圈7 queued:队列,等待执行的task数
圈8 :
圈9 scheduled:刚开始调度dag时,这一次执行总共调度了dag下面多少个task数,并且随着task的执行成功,数值逐渐减少。
Last Run
dag最后执行的时间点
DAG Runs
这里显示dag的执行信息,包括3个圆圈,每个圆圈代表dag的执行状态和次数
圈1 success:总共执行成功的dag数,执行次数
圈2 runing:正在执行dag数
圈3 faild:执行失败的dag数
Links
link
说明
Trigger Dag
人为执行触发
Tree View
当dag执行的时候,可以点入,查看每个task的执行状态(基于树状视图),状态:success,running,failed,skipped,retry,queued,no status
Graph View
同上,基于图视图(有向无环图),查看每个task的执行状态,状态:success,running,failed,skipped,retry,queued,no status
Tasks Duration
每个task的执行时间统计,可以选择最近多少次执行(number of runs)
Task Tries
每个task的重试次数
Landing Times
Gantt View
基于甘特图的视图,每个task的执行状态
Code View
查看任务执行代码
Logs
查看执行日