hera分布式任务调度系统
hera 分布式任务调度系统是根据前阿里开源调度系统(zeus
)进行的二次开发。
架构
hera
系统只是负责调度以及辅助的系统,具体的计算还是要落在hadoop、hive、yarn、spark
等集群中去。所以此时又一个硬性要求,如果要执行hadoop,hive,spark
等任务,我们的hera
系统的worker
一定要部署在这些集群某些机器之上。如果仅仅是shell
,那么也至少需要linux
系统。对于windows
系统,可以把自己作为master
进行调试。
hera
系统本身严格的遵从主从架构模式,由主节点充当着任务调度触发与任务分发器,从节点作为具体的任务执行器.架构图如下:
设计目标
hera
分布式任务调度系统的设计目标首先是要完成zeus
大部分核心功能,并能够根据自己公司的需求进行扩展。大致目标有以下几点
-
支持任务的定时调度、依赖调度、手动调度、手动恢复
-
支持丰富的任务类型:
shell,hive,python,spark-sql,java
-
可视化的任务
DAG
图展示,任务的执行严格按照任务的依赖关系执行 -
某个任务的上、下游执行状况查看,通过任务依赖图可以清楚的判断当前任务为何还未执行,删除该任务会影响那些任务。
-
支持上传文件到
hdfs
,支持使用hdfs
文件资源 -
支持日志的实时滚动
-
支持任务失败自动恢复
-
实现集群HA,机器宕机环境实现机器断线重连与心跳恢复与
hera
集群HA
,节点单点故障环境下任务自动恢复,master
断开,worker
抢占master
-
支持对
master/work
负载,内存,进程,cpu
信息的可视化查看 -
支持正在等待执行的任务,每个
worker
上正在执行的任务信息的可视化查看 -
支持实时运行的任务,失败任务,成功任务,任务耗时
top10
的可视化查看 -
支持历史执行任务信息的折线图查看 具体到某天的总运行次数,总失败次数,总成功次数,总任务数,总失败任务数,总成功任务数
-
支持关注自己的任务,自动调度执行失败时会向负责人发送邮件
-
对外提供
API
,开放系统任务调度触发接口,便于对接其它需要使用hera的系统 -
组下任务总览、组下任务失败、组下任务正在运行
-
支持
map-reduce
任务和yarn
任务的实时取消。 -
(还有更多,等待大家探索)