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

栏目: 软件资讯 · 发布时间: 3年前

内容简介: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?

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

 

03 Schedulis 的设计理念

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

完善

丰富的任务类型:支持常规的Command Shell和自身特色的数据检查DataChecker和工作流之间的依赖任务EventChecker,并且支持基于Linkis平台提供的大数据任务 (HadoopMR, Hive, Spark, Sqoop, Python)。

多样化的任务调度方式:通过灵活的配置可以自由的组织工作流,支持工作流的临时执行,定时调度,循环执行,条件执行和同一工作流的并发执行。

多级别的变量参数设置:系统默认参数,用户级别静态全局变量,参数配置文件properties,系统临时全局参数,工作流动态全局变量。

完善的告警策略:工作流和作业粒度的事件告警和超时告警。

充足的容错能力:支持多种失败策略,包括完成所有可以执行的任务,完成当前正在运行的任务,结束所有正在执行的任务,暂停运行的工作流;并且可以对子工作流/任务设置失败自动重跑次数以及失败跳过策略。

连通

与 DataSphere Studio 和 Linkis 上下连通:DSS将编辑好的工作流一键发布到Schedulis进行调度,而Schedulis将任务向Linkis提交,从而实现数据应用开发全流程的连贯顺滑用户体验。

管理

•用户管理:和LDAP系统打通,可LDAP账号登陆,支持用户的不同权限以及对用户的增删修改

•部门管理:统一的部门管理界面,支持对部门的增删修改以及设置和修改部门所在的资源组

•资源管理:对不同的资源组进行物理隔离,实现系统的多租户管理方案,保证系统的安全和可靠。

金融级

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

多个去中心化的调度节点和执行节点,以此增强管理节点的稳定性,避免了单点故障风险,减少系统不能提供服务的时间,优化用户使用体验。

04 Schedulis的技术架构

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

如上图所示,在技术架构层面上,Schedulis的三个主要核心数点是: WebServer,ExecServer以及DB。

WebServer

主要负责提交任务到队列,轮询队列中的任务提交到Executor,采集Executor的健康状态。

ExecutorServer

ExecutorServer主要负责任务的拆分,规划和执行。

DB

DB 主要负责系统数据的存储,在HA 模式下同时充当着分布式锁的职责,对所有并发操作进行线程安全管理。

 

05 Schedulis 如何助力 WeDataSphere构建开源生态

WeDataSphere是一套一站式、金融级、开源开放大数据平台套件,已在国内最大线上银行WeBank,经过了数年海量严苛金融业务场景的打磨和验证,表现卓越。

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

更多关于 WeDataSphere 的介绍,

请访问:https://github.com/WeBankFinTech/WeDataSphere

 

Schedulis ,是WeDataSphere的数据 工具 组建之一, 已经与 DataSphere Studio 和 Linkis 的对接,DataSphere Studio 可以将编辑好的工作流一键发布到 Schedulis 进行调度,而 Schedulis 也实现了 Linkis 插件,用于向 Linkis 提交任务,这样使得 Schedulis 与 DataSphere Studio 和 Linkis 能够无缝衔接,从而实现数据应用开发全流程的连贯顺滑用户体验。

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

 

06 Schedulis2.0版本展望

目前的Schedulis1.0版本是基于azkaban二次开发的一款产品,对azkaban 做了增强,增加了很多金融级特性,已经在生产大规模使用,但是也是有着如下缺陷:比如系统采用基于servlet和jdbc前后端耦合的架构,在系统的开发拓展方面有着不少限制,在比如现有高可用方案是基于DB实现的分布式锁,那么操作数据库需要一定的开销,需要考虑一定的性能瓶颈。

基于以上问题我们正在对Schedulis进行了一次重大变更升级,在新版本中Schedulis将会和azkaban脱离,采用前后端分离的微服务架构,走自己独立特色路线,在性能,前端UI,DataSphere Studio 和 Linkis整合方面会跟进一步,同时会兼容azkaban的存量批量,保证历史批量无感知迁移。

 

Schedulis 2.0整体架构交互图
Schedulis V1.0.0 发布--开源的金融级工作流调度方案

 

06 总结

Schedulis作为一个金融级分布式调度系统,提供了多种灵活的调度、执行 类型和策略来简化大量任务的复杂依赖和灵活执行。

如您有兴趣,欢迎参与社区共建,在这里可以找到很多您可能感兴趣的点,同时也可以和我们交流,期待更多的社区力量,一起推动Schedulis的成长。

开源链接:

gitee地址: https://gitee.com/WeBank/Schedulis

github地址:https://github.com/WeBankFinTech/Schedulis 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入应用C++11

深入应用C++11

祁宇 / 机械工业出版社 / 2015-5 / 79

在StackOverflow的最近一次世界性调查中,C++11在所有的编程语言中排名第二, C++11受到程序员的追捧是毫不意外的,因为它就像C++之父Bjarne Stroustrup说的:它看起来就像一门新的语言。C++11新增加了相当多的现代编程语言的特性,相比C++98/03,它在生产力、安全性、性能和易用性上都有了大幅提高。比如auto和decltype让我们从书写冗长的类型和繁琐的类型......一起来看看 《深入应用C++11》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具