分布式任务调度系统 hera

未知
Java
跨平台
2019-01-03
scx_white

hera分布式任务调度系统是根据前阿里开源调度系统(zeus)进行的二次开发,其中zeus大概在2014年开源,开源后却并未进行维护。我公司(二维火)2015年引进了zeus任务调度系统,一直使用至今年11月份,在我们部门乃至整个公司发挥着不可替代的作用。在我使用zeus的这一年多,不得不承认它的强大,只要集群规模于配置适度,他可以承担数万乃至十万甚至更高的数量级的任务调度。但是由于zeus代码是未维护的,前端更是使用GWT技术,难于在zeus上面进行维护。我与另外一个小伙伴(花名:凌霄,现在阿里淘宝部门)于今年三月份开始重写zeus,改名赫拉(hera)

 

架构

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

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

的码云指数为
超过 的项目
加载中

评论(1)

32411234as
32411234as
能用于生产吗?

暂无资讯

暂无问答

Toward better NUMA scheduling

A non-uniform memory access (NUMA) system is a computer divided into "nodes," where each node (which may contain multiple processors) has some memory which is local to the node....

2012/04/18 09:10
165
0
spring4.2 定时任务

一.实现定时任务的方式主要有三种 1.通过JDK自带的类实现,即:java.util.Timer结合java.util.TimerTask,使用这种方式可以让你的程序按照某一个频度执行,但调度控制非常不方便,需要大量代...

2016/02/03 16:27
56
2
what is hadoop

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing. The Apache Hadoop software library is a framework that allows for the...

2012/12/27 09:09
333
0
Spring定时任务的实现

spring quartz spring-task 定时任务

2016/08/25 20:40
8
0
Spring定时任务的几种实现方式

近日项目开发中需要执行一些定时任务,比如需要在每天凌晨更新当天签到状态为未签到。从网上找了找 ,觉得这篇总结的较为详尽,就先转载下方便以后查阅。感谢原作者的归纳和分享。 一.分类 ...

2015/12/28 17:19
142
0
Concurrency and Fault Tolerance Made Easy: An Akka Tutorial with Examples

Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant applications on the JVM. Akka is written in Scala, with language bindings provided ...

2016/12/04 17:46
6
0
Voidbox – Docker on YARN

Voidbox – Docker on YARN

2015/09/16 22:07
238
0
100 open source Big Data architecture papers

Big Data technology has been extremely disruptive with open source playing a dominant role in shaping its evolution. While on one hand it has been disruptive, on the other it ha...

2016/04/05 09:36
79
1
Rook-运行于云原生环境的分布式存储系统

Rook-运行于云原生环境的分布式存储系统 文档:https://rook.io/docs/rook/master/cluster-crd.html#node-updates What is Rook? Rook is an open source orchestrator for distributed stor...

2018/02/26 14:52
75
0
processes, threads and signals in Linux

之前想知道process和threads在Linux kernel中的调度问题,后来就想知道linux如何支持multithreaded application了;感谢几位osc的朋友提供的资料和帮助。对于以上两个问题,我了解了个大概。...

2012/04/10 18:08
421
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部