分布式调度框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
568 KiB

5 years ago
{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["easyscheduler是易观研发的大数据分布式工作流调度系统。主要解决数据研发etl错综复杂的依赖关系,而不能直观监控任务健康状态等问题。easyscheduler通过可视化拖拽任务节点的方式形成dag(有向无环图)流程图,在运行过程中可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及kill任务、任务运行历史查看等等操作。","easyscheduler由在工作流调度方面工作多年的几位小伙伴研发而成,致力于成为大数据平台的中流砥柱,使调度变得更加容易,更可以从其中文名“易调度”看出我们的初衷,如果你对目前市面上的调度不够满意,非常欢迎试用易调度,欢迎大家加入进来,提出需求,也欢迎贡献代码,","easyscheduler简介","导语","工作流调度系统在大数据平台中是一个核心的基础设施,是大数据开发必不可少的重要组成部分。由于数据处理流程常常具有很长的依赖链条,因此依赖单机的crontab等单纯依赖时间调度的方式,往往存在很大的弊端,如依赖不清晰,出错难以查找等问题。因此,我们调研了市面上流行的调度系统。","并和azkaban、airflow做了一些对比:","感兴趣的伙伴们可以加我们微信:510570367,一起加入easyscheduler吧,多多交流!","简介","系统部分截图:","背景","鉴于易观日处理数据30tb,复杂的etl依赖关系,我们开发了easyscheduler。"],"pages/guide-architecture.html":["1.","2.","3.",":","alert:告警微服务","api和ui分离交互","dag","easyscheduler中scheduler线程分布式锁实现流程图:","easyscheduler使用zookeeper分布式锁来实现同一时刻只有一台master执行scheduler,或者只有一台worker执行任务的提交。","easyscheduler大数据调度系统架构分析","easyscheduler容错设计依赖于zookeeper的watcher机制,实现原理如图:","easyscheduler的去中心化是master/worker注册到zookeeper中,实现master集群和worker集群无中心,并使用zookeeper分布式锁来选举其中的一台master或worker为“管理者”来执行任务。","easyscheduler设计围绕四个服务展开,ui、web、server和alert。","fileappender实现如下:","logback和grpc实现日志访问","master","master容错完成之后则重新由easyscheduler中scheduler线程调度,遍历","master容错流程图:","master的角色主要负责任务分发并监督slave的健康状态,可以动态的将任务均衡到slave上,以致slave节点不至于“忙死”或”闲死”的状态。","master监控其他master和worker的目录,如果监听到remove事件,则会根据具体的业务逻辑进行流程实例容错或者任务实例容错。","queue中是否已经存在,如果存在则同样监控任务实例的状态,如果不存在则重新提交任务实例。","scheduler线程一旦发现任务实例为”","scheduler线程在获取command的时候是fifo的方式执行的。","scheduler调度及分布式任务执行引擎","server","ui","web:使用springboot提供rest","worker容错流程图:","worker的角色主要负责任务的执行工作并维护和master的心跳,以便master可以分配任务给slave。","zookeep","一旦master出现了问题,则群龙无首,整个集群就崩溃。为了解决这个问题,大多数master/slave架构模式都采用了主备master的设计方案,可以是热备或者冷备,也可以是自动切换或手动切换,而且越来越多的新系统都开始具备自动选举切换master的能力,以提升系统的可用性。","中心化思想","中心化思想设计存在的问题:","中心化的设计理念比较简单,分布式集群中的节点按照角色分工,大体上分为两种角色:","线