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
任务的实时取消。
(还有更多,等待大家探索)
相关介绍 赫拉(hera)分布式任务调度系统之架构,基本功能(一) 赫拉(hera)分布式任务调度系统之项目启动(二) 赫拉(hera)分布式任务调度系统之开发中心(三) 赫拉(hera)分布式任务调度系统之版本(四) 赫拉(hera)分布式任务调度系统之Q&A(五) 1.实现集群HA,机器宕机环境实现机器断线重连与心跳恢复与hera集群HA,节点单点故障环境下任务自动恢复,master断开,wo
简单介绍 待运行队列(MasterContext.scheduleQueue) 生产者:定时时间到、或者依赖任务都执行完,往队列里添加待执行的任务 消费者:worker 定时去扫描队列里 是否有任务 需要执行 一、定时任务如何往队列里 添加任务 1、在Hera启动初始化时 1、发送一条初始化的事件 Events.Initialize // Master.init executeJobPool.ex
简介 在过去,开发者必须在服务器上为每个任务生成单独的 Cron 项目。而令人头疼的是任务调度不受源代码控制,而且必须通过 SSH 连接到服务器上来增加 Cron 项目。 Laravel 的命令调度程序允许你在 Laravel 中对命令调度进行清晰流畅的定义。并且在使用调度程序时,只需要在服务器上增加一条 Cron 项目即可。调度是在 app/Console/Kernel.php 文件的 sche
基本任务调度 方案1: 通过 @Cron 注解,这个需要依赖 cron4j 框架: //1分钟执行一次 @Cron("*/1 * * * *") public class MyTask implements Runnable { @Override public void run() { System.out.println("task running...");
在这最后一章中,我们将回到:kv应用程序,给它添加一个路由层,使之可以根据桶的名字,在各个节点间分发请求。 路由层会接收一个如下形式的路由表: [{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}] 路由者(负责转发请求的角色,可能是个节点)将根据桶名字的第一个字节查这个路由表, 然后根据路由表所示将用户对桶的请求发给相应
每隔一段时间需要调度任务执行,也许你想注册一个任务在客户端完成连接5分钟后执行,一个常见的用例是发送一个消息“你还活着?”到远端通,如果远端没有反应,则可以关闭通道(连接)和释放资源。 本节介绍使用强大的 EventLoop 实现任务调度,还会简单介绍 Java API的任务调度,以方便和 Netty 比较加深理解。 使用普通的 Java API 调度任务 在 Java 中使用 JDK 提供的 S
ShardingSphereTransactionManager SPI 名称 详细说明 ShardingSphereTransactionManager 分布式事务管理器 已知实现类 详细说明 XAShardingSphereTransactionManager 基于 XA 的分布式事务管理器 SeataATShardingSphereTransactionManager 基于 Seata 的分
ShardingSphere-Proxy 接入的分布式事务 API 同 ShardingSphere-JDBC 保持一致,支持 LOCAL,XA,BASE 类型的事务。 XA 事务 ShardingSphere-Proxy 原生支持 XA 事务,默认的事务管理器为 Atomikos。 可以通过在 ShardingSphere-Proxy 的 conf 目录中添加 jta.properties 来定