Schedulis V1.0.0 发布--开源的金融级工作流调度方案
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 ;
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
交通标准 808 解析软件二次开发包 v1.2.2 发布
介绍 这个二次开发包是基于作者之前做过项目的源码改造的,那个时候使用不是很标准,仅仅是解析车辆定位数据, 并没有实现所有的内容。现在有时间终于可以重构一下原来的项目源码。 版本特性 20200512 v1.2.2 💥兼容交通标准808协议的2011、2013、2019版本 💥基于 Spring 系列框架,充分利用 Spring 的优势,改写扩展都很简单(自定义消息包处理器) 💢修复报警和状态解析的异常 20200503 v1.0.1 💥处理分包粘包 💥兼容交通标准808协议的2011、2013版本 💥超长指令分包下发(一般是超过1K) 💥分包处理(上传信息分包会合并解析) 如何开发 完整开发视频请访问重构录屏 基于开发包进行二次开发请访问直播录屏 详细说明请访问我的博客 最小化启动项目已经开源,欢迎访问 作者 JDK 使用的是 openJDK 12 版本,还没有在其他 JDK 版本进行测试。 下面是基于maven简短的开发使用步骤,详细还请访问直播录屏 创建新的 spring boot 项目的 pom 文件,并添加以下依赖: <dependency> &...
- 下一篇
选择WordPress 主机空间需要注意什么?
选择WordPress 主机空间需要注意什么?现在的主机空间基本能满足Wordpress环境需求。购买主机,可做下面几点去考虑。1.网站流量网站流量决定主机带宽。我举个例子:带宽速度就像一条逐渐变窄的公路,当车流量(网站流量)变大时,窄口就会出现塞车,所以当多用户访问网站时,就会很慢。流量越大,需要的带宽越大。2.网站体量(空间和数据库大小)如果网站内容较多,那空间和数据库都要买大一点,而且主机的配置要高。这才能最快把内容呈现给用户。Wordpress对主机配置要求还是比较高,如果配置跟不上,不说前端,后台访问都会卡到不行。配置越好,网站程序运行速度越快,网站数据库查询调用越快。网站自然打开显示内容都会快。3.主机品牌现在网络卖主机的IDC商有很多,很多都是打以价格低,云主机等特色去推广。杂牌主机要么很卡,就是特别多其它问题,最后连服务都是十问九不理的。所以买主机尽量买熟悉的大品牌,在这里我推荐几个老品牌,大家购买主机时,可以做为首要考虑。
相关文章
文章评论
共有0条评论来说两句吧...