内容简介:Schedulis 是微众银行基于 LinkedIn 的开源项目 Azkaban 开发的一款工作流任务调度系统,用于解决金融级场景下,大量批量作业任务的复杂依赖、灵活调度。 开源链接: gitee地址: https://gitee.com/WeBank/Sched...
Schedulis 是微众银行基于 LinkedIn 的开源项目 Azkaban 开发的一款工作流任务调度系统,用于解决金融级场景下,大量批量作业任务的复杂依赖、灵活调度。
开源链接:
gitee地址: https://gitee.com/WeBank/Schedulis ;
github地址:https://github.com/WeBankFinTech/Schedulis
01 Schedulis 是什么?
Schedulis 是一个分布式工作流任务调度系统。其支持常规的 Command Shell 和 Linkis(HadoopMR、 Hive、Spark、Sqoop、 Python)大数据任务;同时还支持特色的数据检查和工作流之间的依赖任务,支持完善的告警和工作流执行策略;提供多种类型的参数设置,动态全局变量和简单易用的 UI;该调度系统还具备高性能,高可用(去中心化多调度中心和多执行器)和多租户资源隔离等金融级特性;现已被集成到数据应用开发门户 DataSphere Studio。
02 为什么需要 Schedulis?
- 大数据平台中承载着大量多样的数据处理任务,如何才能够充分解放人力,使得这些任务能够按照业务自定义的执行顺序和执行策略,被自动化的调度且具备足够的容错能力?这是企业和业务人员的迫切需要。
- 业界现有的任务调度系统层出不穷,但也暴露了各色各样的问题:
- 支持的任务类型不够丰富和任务调度方式单一,不能满足变化多端的业务需求;
- 不支持工作流之间的相互依赖;
- 不支持对接DataSphere Studio 和 Linkis;
- 失败和告警策略要么缺失要么简陋,使得业务人员不能及时的发现问题处理问题;
- 对于执行的工作流/任务参数的设置不够灵活;
- 单管理节点配备单冷备的单点故障风险,造成一部分工作流状态的缺失和服务中断等问题。.
03 Schedulis 的设计理念
完善
• 丰富的任务类型:支持常规的Command Shell和自身特色的数据检查DataChecker和工作流之间的依赖任务EventChecker,并且支持基于Linkis平台提供的大数据任务 (HadoopMR, Hive, Spark, Sqoop, Python)。
•多样化的任务调度方式:通过灵活的配置可以自由的组织工作流,支持工作流的临时执行,定时调度,循环执行,条件执行和同一工作流的并发执行。
•多级别的变量参数设置:系统默认参数,用户级别静态全局变量,参数配置文件properties,系统临时全局参数,工作流动态全局变量。
•完善的告警策略:工作流和作业粒度的事件告警和超时告警。
•充足的容错能力:支持多种失败策略,包括完成所有可以执行的任务,完成当前正在运行的任务,结束所有正在执行的任务,暂停运行的工作流;并且可以对子工作流/任务设置失败自动重跑次数以及失败跳过策略。
连通
与 DataSphere Studio 和 Linkis 上下连通:DSS将编辑好的工作流一键发布到Schedulis进行调度,而Schedulis将任务向Linkis提交,从而实现数据应用开发全流程的连贯顺滑用户体验。
管理
•用户管理:和LDAP系统打通,可LDAP账号登陆,支持用户的不同权限以及对用户的增删修改
•部门管理:统一的部门管理界面,支持对部门的增删修改以及设置和修改部门所在的资源组
•资源管理:对不同的资源组进行物理隔离,实现系统的多租户管理方案,保证系统的安全和可靠。
金融级
多个去中心化的调度节点和执行节点,以此增强管理节点的稳定性,避免了单点故障风险,减少系统不能提供服务的时间,优化用户使用体验。
04 Schedulis的技术架构
如上图所示,在技术架构层面上,Schedulis的三个主要核心数点是: WebServer,ExecServer以及DB。
•WebServer
主要负责提交任务到队列,轮询队列中的任务提交到Executor,采集Executor的健康状态。
•ExecutorServer
ExecutorServer主要负责任务的拆分,规划和执行。
•DB
DB 主要负责系统数据的存储,在HA 模式下同时充当着分布式锁的职责,对所有并发操作进行线程安全管理。
05 Schedulis 如何助力 WeDataSphere构建开源生态
WeDataSphere是一套一站式、金融级、开源开放大数据平台套件,已在国内最大线上银行WeBank,经过了数年海量严苛金融业务场景的打磨和验证,表现卓越。
更多关于 WeDataSphere 的介绍,
请访问:https://github.com/WeBankFinTech/WeDataSphere
Schedulis ,是WeDataSphere的数据 工具 组建之一, 已经与 DataSphere Studio 和 Linkis 的对接,DataSphere Studio 可以将编辑好的工作流一键发布到 Schedulis 进行调度,而 Schedulis 也实现了 Linkis 插件,用于向 Linkis 提交任务,这样使得 Schedulis 与 DataSphere Studio 和 Linkis 能够无缝衔接,从而实现数据应用开发全流程的连贯顺滑用户体验。
06 Schedulis2.0版本展望
目前的Schedulis1.0版本是基于azkaban二次开发的一款产品,对azkaban 做了增强,增加了很多金融级特性,已经在生产大规模使用,但是也是有着如下缺陷:比如系统采用基于servlet和jdbc前后端耦合的架构,在系统的开发拓展方面有着不少限制,在比如现有高可用方案是基于DB实现的分布式锁,那么操作数据库需要一定的开销,需要考虑一定的性能瓶颈。
基于以上问题我们正在对Schedulis进行了一次重大变更升级,在新版本中Schedulis将会和azkaban脱离,采用前后端分离的微服务架构,走自己独立特色路线,在性能,前端UI,DataSphere Studio 和 Linkis整合方面会跟进一步,同时会兼容azkaban的存量批量,保证历史批量无感知迁移。
Schedulis 2.0整体架构交互图
06 总结
Schedulis作为一个金融级分布式调度系统,提供了多种灵活的调度、执行 类型和策略来简化大量任务的复杂依赖和灵活执行。
如您有兴趣,欢迎参与社区共建,在这里可以找到很多您可能感兴趣的点,同时也可以和我们交流,期待更多的社区力量,一起推动Schedulis的成长。
开源链接:
gitee地址: https://gitee.com/WeBank/Schedulis ;
github地址:https://github.com/WeBankFinTech/Schedulis
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 分布式任务调度系统设计:详解 Go 实现任务编排与工作流
- Easy Scheduler 1.0.2 发布,分布式工作流任务调度系统
- Easy Scheduler 1.0.2 发布,分布式工作流任务调度系统
- Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
- Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
- Easy Scheduler 1.0.4 发布,分布式工作流任务调度系统
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP Cookbook
Adam Trachtenberg、David Sklar / O'Reilly Media / 2006-08-01 / USD 44.99
When it comes to creating dynamic web sites, the open source PHP language is red-hot property: used on more than 20 million web sites today, PHP is now more popular than Microsoft's ASP.NET technology......一起来看看 《PHP Cookbook》 这本书的介绍吧!