一种大数据平台去中心化的调度和执行方法、装置制造方法及图纸

技术编号:28494093 阅读:12 留言:0更新日期:2021-05-19 22:23
本发明专利技术公开了一种大数据平台去中心化的任务调度触发和执行方法,若干个调度触发模块以进程为单位分布在ZooKeeper集群中同时运行、调度触发模块将被调度大数据计算任务的META信息写入ZooKeeper集群、任务执行模块以进程为单位,分布在ZooKeeper集群多个ZNode节点中运行、任务执行模块从ZooKeeper的ZNode树上进行依次遍历;当发现某个子过程具备执行条件时,锁定该任务、获取任务信息,执行该任务,并将任务的子过程执行结果和状态信息写入MySQL的任务历史、用户通过WebSocket协议建立后端WEB模块的连接,实时掌控ZooKeeper树中记录的所有任务的配置和状态信息。录的所有任务的配置和状态信息。录的所有任务的配置和状态信息。

【技术实现步骤摘要】
一种大数据平台去中心化的调度和执行方法、装置


[0001]本专利技术涉及一种大数据平台去中心化的调度和执行方法、装置。

技术介绍

[0002]任务调度、执行是操作系统的重要组成部分。对于周期性任务的统一调度,现有技术中主要通过判断当前时间与任务上次执行开始时间之间的时间差大于任务执行间隔来确定调度任务,任务在数据仓库的概念中就是最小处理数据动作的一种技术实现,在一个数据仓库中,数据的处理都是由成千上万的各种处理任务完成。在当前流行的数据仓库平台中,任务调度一般都实现了根据任务依赖关系,进行任务并发调度,并可以设置任务运行的并发度及任务的优先级,优先级越高,任务会优先触发执行。但在一些实际使用场景中,仍然存在种种问题,例如:由于数据平台运算资源不够,发生整个平台宕掉;任务的触发时间和完成时间没有达到业务方的需求等等。

技术实现思路

[0003]专利技术目的:本专利技术的目的是提供一种任一调度触发模块宕机后,可通过释放其所在Trigger定义的控制权,被剩余的各调度触发模块予以Quartz服务实例化启动,不会因为某个调度触发模块进程宕机而导致业务的中断的大数据平台去中心化的调度和执行方法。
[0004]本专利技术的另一目的是提供一种大数据平台去中心化的调度和执行装置。
[0005]技术方案:为了实现以上目的,一种大数据平台去中心化的任务调度触发和执行方法,适用于分布式大数据平台,包括步骤:
[0006](1)若干个调度触发模块以进程为单位分布在ZooKeeper集群中同时运行,且彼此地位相同;
[0007](2)调度触发模块将被调度大数据计算任务的META信息写入ZooKeeper集群;
[0008](3)任务执行模块以进程为单位,分布在ZooKeeper集群多个ZNode节点中运行,且彼此间地位相同;
[0009](4)任务执行模块以计算任务的子过程为单位,从ZooKeeper的ZNode树上进行依次遍历;当发现某个子过程具备执行条件时,在该任务的ZNode节点下添加临时节点以锁定该任务;
[0010](5)从计算任务当前子过程的上下文中获取任务信息,执行该任务,并将任务的子过程执行结果和状态信息写入MySQL的任务历史;同时任务执行模块需要同步等待该任务子过程的执行直到完成或者异常退出;
[0011](6)对于已经完成的任务子过程或异常退出,任务执行模块释放对于该任务ZNod节点的锁定,并且判断该子过程是否整个任务的最后一个子过程;如是则从ZooKeeper树种删除该任务的ZNode节点,表示该任务实例已经完成或失败执行;
[0012](7)用户打开任务监控模块的前端UI,通过WebSocket协议建立后端WEB模块的连接;所述WEB模块中通过ZooKeeper的Watcher监听器,实时掌控ZooKeeper树中记录的所有
任务的配置和状态信息,通过WebSocket双向通信协议主动广播推送到用户前端UI。
[0013]所述的调度方法包括步骤
[0014](1)触发器Trigger使用Quartz时钟表达式对任一任务进行自动触发,开始任务进程;
[0015](2)触发器Trigger管理模块定时将MySQL库中持久化且Quartz时钟表达式为合法的触发器Trigger实例信息写入ZooKeeper集群,每个触发器Trigger实例占用一个ZNode节点;
[0016](3)若干个调度触发模块以进程为单位分布在ZooKeeper集群中同时运行,且彼此地位相同;
[0017](4)调度触发模块从ZooKeeper集群中遍历每一触发器Trigger定义的ZNode节点,并通过ZooKeeper提供的分布式锁进行操作;
[0018](5)各个调度触发模块进程按照步骤(4)所述,将ZooKeeper集群中的所有触发任务依次予以启动;任一调度触发模块宕机后,当前调度模块所写在ZooKeeper集群中的临时ZNode自动失效,释放其所在Trigger定义的控制权;被释放的触发器Trigger定义,被剩余的各调度触发模块依次予以Quartz服务实例化启动。
[0019]若步骤(4)所述ZNode节点尚未建立Quartz服务,则根据时钟表达式和任务参数创建Quartz服务实例,并且将所述服务实例的信息以临时ZNode的形式配置在该ZNode之下;操作完成后再次进入遍历触发器Trigger ZNode的操作。
[0020]所述触发器实例的定义由触发器管理模块在MySQL中进行持久化。
[0021]步骤(2)包括执行状态、任务启动时间、下一个子过程ID动态信息。
[0022]步骤4所述的子过程执行上下文信息存储在ZooKeeper树上。
[0023]步骤(5)所述任务信息包括指定某个Spark任务或者一段SQL、Scala、Python脚本。
[0024]一种大数据平台去中心化的调度和执行装置,包括调度触发模块,用于根据调度周期周期性地触发调度处理模块执行调度处理操作;
[0025]任务执行模块,调度处理模块,配置用于执行调度处理操作;
[0026]任务监控模块,通过ZooKeeper的Watcher监听器,实时掌控ZooKeeper树中记录的所有任务的配置和状态信息。
[0027]包括任务检测模块,配置用于判断ZooKeeper集群中的所有触发任务是否全部被分配或执行;并且在任务池中的任务全部被分配或执行时,结束任务调度。
[0028]有益效果:与现有技术相比,本专利技术提供的一种大数据平台去中心化的调度和执行方法、装置,具有以下优点:
[0029]1.本专利技术提供的调度触发模块从ZooKeeper集群中遍历各个Trigger定义的ZNode节点,并且通过ZooKeeper提供的分布式锁进行操作,避免多个调度触发模块发生同步冲突。
[0030]2.本专利技术提供的调度方法,当某个调度触发模块宕机后,该调度模块所写在ZooKeeper集群中的临时ZNode自动失效,释放其所在Trigger定义的控制权;被释放的这些Trigger定义被剩余的各调度触发模块依次予以Quartz服务实例化启动,解决了调度任务触发的去中心化,不会因为某个调度触发模块进程宕机而导致业务的中断,提高用户的满意度;
[0031]3.本专利技术任务执行模块以计算任务的子过程为单位,从ZooKeeper集群的ZNode树上进行依次遍历,当发现某个子过程具备执行条件时,在该任务的ZNode下添加临时节点用于锁定该任务,避免该任务实例被其它的任务执行模块调度;保证执行效率;
[0032]4.本专利技术包括任务监控模块,通过WebSocket协议建立后端WEB模块的连接;WEB模块中通过ZooKeeper的Watcher监听器,实时掌控ZooKeeper树中记录的所有任务的配置和状态信息,通过WebSocket这种双向通信协议主动广播推送到用户UI,从而让用户可以在UI上实时监控到任务调度本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大数据平台去中心化的任务调度触发和执行方法,适用于分布式大数据平台,其特征在于:包括步骤:(1)若干个调度触发模块以进程为单位分布在ZooKeeper集群中同时运行,且彼此地位相同;(2)调度触发模块将被调度大数据计算任务的META信息写入ZooKeeper集群;(3)任务执行模块以进程为单位,分布在ZooKeeper集群多个ZNode节点中运行,且彼此间地位相同;(4)任务执行模块以计算任务的子过程为单位,从ZooKeeper的ZNode树上进行依次遍历;当发现某个子过程具备执行条件时,在该任务的ZNode节点下添加临时节点以锁定该任务;(5)从计算任务当前子过程的上下文中获取任务信息,执行该任务,并将任务的子过程执行结果和状态信息写入MySQL的任务历史;同时任务执行模块需要同步等待该任务子过程的执行直到完成或者异常退出;(6)对于已经完成的任务子过程或异常退出,任务执行模块释放对于该任务ZNod节点的锁定,并且判断该子过程是否整个任务的最后一个子过程;如是则从ZooKeeper树种删除该任务的ZNode节点,表示该任务实例已经完成或失败执行;(7)用户打开任务监控模块的前端UI,通过WebSocket协议建立后端WEB模块的连接;所述WEB模块中通过ZooKeeper的Watcher监听器,实时掌控ZooKeeper树中记录的所有任务的配置和状态信息,通过WebSocket双向通信协议主动广播推送到用户前端UI。2.根据权利要求1所述的一种大数据平台去中心化的调度任务出发和执行方法,其特征在于:所述的调度方法包括步骤(1)触发器Trigger使用Quartz时钟表达式对任一任务进行自动触发,开始任务进程;(2)触发器Trigger管理模块定时将MySQL库中持久化且Quartz时钟表达式为合法的触发器Trigger实例信息写入ZooKeeper集群,每个触发器Trigger实例占用一个ZNode节点;(3)若干个调度触发模块以进程为单位分布在ZooKeeper集群中同时运行,且彼此地位相同;(4)调度触发模块从ZooKeeper集群中遍历每一触发器Trigger定义的ZNode节...

【专利技术属性】
技术研发人员:王晟
申请(专利权)人:鲸灵科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1