Schedulis是微众银行基于LinkedIn的开源项目Azkaban开发的一款工作流任务调度系统,具有任务类型丰富、任务调度方式多样化、告警策略完善等多种特色,可以解决金融级场景下大量批量作业任务的操作繁杂,不够灵活的缺点,非常好用。
Schedulis备高性能,高可用和多租户资源隔离等金融级特性,支持常规的Command Shell和Linkis(HadoopMR、 Hive、Spark、Sqoop、 Python)大数据任务,同时还支持特色的数据检查和工作流之间的依赖任务,还能与DataSphere Studio和Linkis能够无缝衔接,从而实现数据应用开发全流程的连贯顺滑用户体验。
软件特色
完善
• 丰富的任务类型:支持常规的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 模式下同时充当着分布式锁的职责,对所有并发操作进行线程安全管理。