算子热更新方法及装置制造方法及图纸

技术编号:38196845 阅读:12 留言:0更新日期:2023-07-21 16:34
本发明专利技术公开了算子热更新方法及装置,方法包括:基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库;按照预设的频率扫描算子仓库;若算子仓库中的算子被修改或数量改变,在spark服务执行当前任务时将spark服务接收到的新任务放至等待队列;轮巡spark服务的任务进度;在检测到spark服务的当前任务执行完成时,重新启动spark服务。本发明专利技术通过动态扫描的方式检测到算子变更,不需要将算子插件对应的依赖包重新打包到spark集群的镜像中,解耦了算子更新与镜像更新。检测当前正在执行的任务,不需要中断执行中的任务,当任务执行完成后重启spark服务,实现了算子热更新,提升了用户体验。用户体验。用户体验。

【技术实现步骤摘要】
算子热更新方法及装置


[0001]本专利技术涉及大数据
,尤其涉及算子热更新方法及装置。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]在数据挖掘过程中,需要对海量数据进行清洗、分析、加工,且每个过程对资源的要求也不同,为了实现资源动态扩缩容,满足不同数据量的使用场景,业内的趋势是结合容器编排引擎Spark on kubernetes来实现。
[0004]基于Spark on kubernetes进行数据挖掘要求用户具备技术基础,门槛高。因此业内比较常见的做法是基于Spark提供封装好的算子,用户基于多种算子就能快速地探索出一套数据加工的方案。当需要支持新的计算逻辑时,就会针对性的开发出一个独立的算子来支撑该逻辑。因此更新算子是一个相对频繁的操作,现有的技术方案下新增一个定制化算子,一般需要经过如下步骤:
[0005]1、开发算子。
[0006]2、添加算子所需的依赖包。
[0007]3、更新应用镜像。
[0008]4、增加算子及依赖包所需的参数。
[0009]5、重新打包镜像。
[0010]6、结束正在进行的计算任务并停止生产环境的spark集群。
[0011]7、更新镜像。
[0012]8.重新启动spark集群。
[0013]因此每次增加一种新算子,都需要停服升级,在更新期间服务处于不可用状态,这给使用上带来诸多不便,效率低下。

技术实现思路

[0014]本专利技术实施例提供一种算子热更新方法,用以实现算子热更新,该方法包括:
[0015]基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库;
[0016]按照预设的频率扫描算子仓库;
[0017]若算子仓库中的算子被修改或数量改变,在spark服务执行当前任务时将spark服务接收到的新任务放至等待队列;
[0018]轮巡spark服务的任务进度;
[0019]在检测到spark服务的当前任务执行完成时,重新启动spark服务。
[0020]本专利技术实施例还提供一种算子热更新装置,用以实现算子热更新,该装置包括:
[0021]扫描模块,用于基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库;按照预设的频率扫描算子仓库;
[0022]热更新模块,用于若算子仓库中的算子被修改或数量改变,在spark服务执行当前任务时将spark服务接收到的新任务放至等待队列;轮巡spark服务的任务进度;在检测到spark服务的当前任务执行完成时,重新启动spark服务。
[0023]本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述算子热更新方法。
[0024]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述算子热更新方法。
[0025]本专利技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述算子热更新方法。
[0026]本专利技术实施例中,基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库;按照预设的频率扫描算子仓库;若算子仓库中的算子被修改或数量改变,在spark服务执行当前任务时将spark服务接收到的新任务放至等待队列;轮巡spark服务的任务进度;在检测到spark服务的当前任务执行完成时,重新启动spark服务,与现有技术相比,通过动态扫描的方式检测到算子变更,不需要将算子插件对应的依赖包重新打包到spark集群的镜像中,解耦了算子更新与镜像更新。检测当前正在执行的任务,不需要中断执行中的任务,当任务执行完成后重启spark服务,实现了算子热更新,整个升级过程对用户无感知,提升了用户体验。
附图说明
[0027]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0028]图1为本专利技术提供的算子热更新方法的流程示意图;
[0029]图2为本专利技术提供的算子热更新方法的流程示意图;
[0030]图3为本专利技术提供的算子热更新方法的流程示意图;
[0031]图4为本专利技术提供的算子热更新方法的流程示意图;
[0032]图5为本专利技术提供的算子热更新装置的结构示意图。
具体实施方式
[0033]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。
[0034]图1为本专利技术实施例提供的一种算子热更新方法所对应的流程示意图,如图1所示,该方法包括:
[0035]步骤101,基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库。
[0036]本专利技术实施例将spark使用到的算子及算子的依赖包存放至算子仓库中。
[0037]需要说明的是,算子定义了数据加工的内容,主要用于数据清洗、特征衍生等场
景。比如连接算子、列拆分算子等。Spark为基于内存计算的分布式计算引擎,普遍用于大数据计算。
[0038]步骤102,按照预设的频率扫描算子仓库。
[0039]举例来说,每5秒定时扫描算子仓库,比对每个文件的Last Modified属性,即标记此文件在服务器端最后被修改的时间是否是最近5秒内更新的。
[0040]步骤103,若算子仓库中的算子被修改或数量改变,在spark服务执行当前任务时将spark服务接收到的新任务放至等待队列。
[0041]本专利技术实施例中,比对上一次扫描结果与本次扫描结果,是否存在新增或删除的文件。若存在,则发送变更事件到监听服务。
[0042]在一种可能的实施方式中,采用钩子函数将spark服务接收到的新任务放至等待队列。
[0043]采用HOOK函数,在spark服务接收到新任务时,将新任务放至等待队列。使得spark服务在当前的任务执行完成时不继续处理新任务。
[0044]步骤104,轮巡spark服务的任务进度。
[0045]步骤105,在检测到spark服务的当前任务执行完成时,重新启动spark服务。
[0046]本专利技术实施例中,通过spark接口查询当前任务的执行情况。
[0047]举例来说,每隔10秒轮巡spark集群的任务情况,当检测到当前的所有任务都已执行完成,则通过spark接口重新启动spark服务。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种算子热更新方法,其特征在于,包括:基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库;按照预设的频率扫描算子仓库;若算子仓库中的算子被修改或数量改变,在spark服务执行当前任务时将spark服务接收到的新任务放至等待队列;轮巡spark服务的任务进度;在检测到spark服务的当前任务执行完成时,重新启动spark服务。2.如权利要求1所述的算子热更新方法,其特征在于,在所述按照预设的频率扫描算子仓库之后,还包括:确定算子仓库中每个算子的属性信息及算子数量;根据每个算子的属性信息确定各个算子在预设时间段内是否被修改;与上一次扫描后的算子数量进行对比,确定是否有新增或删除的算子。3.如权利要求1所述的算子热更新方法,其特征在于,所述基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库,包括:生成算子插件;所述算子插件包含spark服务涉及的算子的注册接口、解释接口、数据加载接口及计算接口;基于Hadoop分布式文件系统根据算子插件建立算子仓库。4.如权利要求1所述的算子热更新方法,其特征在于,所述将spark服务接收到的新任务放至等待队列,包括:采用钩子函数将spark服务接收到的新任务放至等待队列。5.如权利要求1所述的算子热更新方法,其特征在于,在所述重新启动spark服务之后,还包括:将等待队列中的任务提交到重新启动后的spark服务。6.一种算子热更新装置,其特征在于,包括:扫描模块,用于基于Hadoop分布式文件系统及spark服务涉及的算子建立算子仓库;按照预设的频率扫描算子仓库;热更新模块,用于若算子仓库中的算子被修改或数量改变,在spa...

【专利技术属性】
技术研发人员:林培峰方景星
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1