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

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

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


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

查看所有标签

猜你喜欢:

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

PHP Cookbook

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》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具