hera分布式任务调度系统

联合创作 · 2023-10-01 07:53

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任务的实时取消。

  • (还有更多,等待大家探索)

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报