您现在的位置是:首页 > 文章详情

Schedulis V1.0.0 发布--开源的金融级工作流调度方案

日期:2020-05-15点击:412

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?

  1. 大数据平台中承载着大量多样的数据处理任务,如何才能够充分解放人力,使得这些任务能够按照业务自定义的执行顺序和执行策略,被自动化的调度且具备足够的容错能力?这是企业和业务人员的迫切需要。
  2. 业界现有的任务调度系统层出不穷,但也暴露了各色各样的问题:
  1. 支持的任务类型不够丰富和任务调度方式单一,不能满足变化多端的业务需求;
  2. 不支持工作流之间的相互依赖;
  3. 不支持对接DataSphere Studio 和 Linkis;
  4. 失败和告警策略要么缺失要么简陋,使得业务人员不能及时的发现问题处理问题;
  5. 对于执行的工作流/任务参数的设置不够灵活;
  6. 单管理节点配备单冷备的单点故障风险,造成一部分工作流状态的缺失和服务中断等问题。.

 

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 

原文链接:https://www.oschina.net/news/115670/schedulis-1-0-0-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章