任务运行日志的处理方法、装置、设备及存储介质与流程

文档序号:22083206发布日期:2020-09-01 19:42阅读:164来源:国知局
任务运行日志的处理方法、装置、设备及存储介质与流程

本发明涉及人工智能领域,更具体地,涉及一种任务运行日志的处理方法、一种任务运行日志的处理装置、一种包括至少一个计算装置和至少一个存储装置的设备、及一种计算机可读存储介质。



背景技术:

目前,在人工智能领域,普遍无法做到运行错误自动探测和运行状态透明化。现有技术中,当任务运行失败时,用户需要对日志进行关键词搜索和定位,然后人工发现问题,该种方法主要依赖于人工手动发现问题,极大浪费时间和工作量,导致效率低下;同时,在任务运行失败时,其仅能在任务运行结束后由人工手动去进行分析,无法做到事中实时展示,也无法提供运行失败原因的自动探测,对于金融、政府等要求可信可靠的行业用户,是无法被实际应用的。



技术实现要素:

本公开实施例的一个目的是提供一种任务运行日志的处理的新的技术方案。

根据本公开的第一方面,提供了一种任务运行日志的处理方法,其包括:

获取并保存预置的报错原因关键词和对应的报错规则;

当任务运行失败时,根据所保存的报错规则去匹配任务运行日志;

将匹配成功的报错规则所对应的报错原因关键词展示到前端。

可选地,所述报错原因关键词和对应的报错规则包括如下中的至少一种:

内存不足,对应单个关键字报错;

license超限,对应同时满足多个关键字且不在同一行报错;

算法参数配置错误,对应同时满足多个关键字且不在同一行报错;

脚本语法错误,对应同时满足多个关键字且不在同一行报错;

集群时区不同步,对应同时满足多个关键字且不在同一行报错;

权限不足,对应单个关键字报错。

可选地,所述方法还包括:根据所述任务中的执行步骤的先后顺序,对所述任务的运行日志进行分类收集,从而得到多个子日志文件;

所述根据所保存的报错规则去匹配任务运行日志包括:根据所述多个子日志文件的产生顺序的倒序去进行匹配。

可选地,所述多个子日志文件包括:引擎日志、非业务日志和业务日志。

可选地,所述引擎日志用于记录调度执行引擎时的系统相关信息;所述非业务日志用于记录任务运行时的系统相关信息;所述业务日志用于记录任务运行时的算法相关信息。

可选地,所述引擎日志在所述任务运行之前的第一阶段生成,所述非业务日志在所述任务运行的第二阶段生成,所述业务日志在所述任务运行的第三阶段生成,所述第二阶段、所述第三阶段依时间顺序先后执行。

可选地,所述多个子日志文件包括引擎日志和非业务日志,

所述根据所述多个子日志文件的产生顺序的倒序去进行匹配,包括:

从最后一条所述非业务日志开始从后向前依次匹配。

可选地,所述多个子日志文件包括引擎日志、非业务日志和业务日志,所述根据所述多个子日志文件的产生顺序的倒序去进行匹配,包括:

从最后一条所述业务日志开始从后向前依次匹配。

可选地,当任务运行失败时,由执行引擎向调度器报错,由调度器执行所述匹配和展示到前端的步骤。

可选地,所述方法还包括:

获取预置的与所展示的报错原因关键词对应的修复程序,运行所述修复程序。

可选地,所述方法还包括:

在运行所述修复程序之前提示用户是否执行一键修复,当用户确认时再执行所述修复程序。

可选地,所述方法还包括:

将运行所述修复程序的过程也写入所述任务的运行日志中。

可选地,通过websocket协议与前端建立通讯连接。

可选地,所述方法还包括:

根据所述任务的类型,获取预置与所述任务的类型对应的运行状态捕捉规则模型;

当所述任务运行时,由所述运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示。

可选地,所述运行日志包括业务日志,所述任务为gbdt算法训练任务,

所述由所述运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示,包括:

利用所述运行状态捕捉规则模型定位所述业务日志中的树建立信息,以获取所述树建立信息中的树建立开始时间、树建立结束时间、gbdt算法效果、所述任务的资源消耗、所述任务对应的加工数据条数;

将所述树建立信息进行绘图并实时发送到前端进行展示。

可选地,所述运行日志包括业务日志,所述任务为特征抽取任务,

所述由所述运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示,包括:

利用所述运行状态捕捉规则模型定位所述业务日志中的每一行数据、每一种特征方法的处理信息,以获取所述处理信息中的处理开始时间、处理结束时间、特征方法是否生效、所述任务的任务所耗资源、特征方法生效比例;

将所述处理信息进行绘图并实时发送到前端进行展示。

可选地,所述运行日志包括业务日志,所述方法还包括:

在任务运行时,将实时接收的业务日志推送到前端,以使所述前端解析所述业务日志并进行实时展示。

可选地,所述运行日志包括业务日志,

所述方法还包括:

接收调度引擎推送的任务运行时生成的业务日志,所述业务日志用于记录所述执行引擎执行对应算子来运行所述任务时的算法相关信息;

解析所述业务日志并实时展示给用户,以使所述用户根据展示的所述任务的运行状态确定是否继续执行所述任务。

可选地,所述运行日志包括业务日志,

所述方法还包括:

实时查看所述任务运行时生成的业务日志;

根据所述业务日志判断所述任务的运行状态是否满足预设的任务结束运行条件;

在所述任务的运行状态满足所述预设的任务结束运行条件的情况下,结束所述任务的运行。

根据本公开的第二方面,还提供一种任务运行日志的处理装置,其包括:

获取模块,用于获取并保存预置的报错原因关键词和对应的报错规则;

匹配模块,用于当任务运行失败时,根据所保存的报错规则去匹配任务运行日志;

展示模块,用于将匹配成功的报错规则所对应的报错原因关键词展示到前端。

可选地,所述报错原因关键词和对应的报错规则包括如下中的至少一种:

内存不足,对应单个关键字报错;

license超限,对应同时满足多个关键字且不在同一行报错;

算法参数配置错误,对应同时满足多个关键字且不在同一行报错;

脚本语法错误,对应同时满足多个关键字且不在同一行报错;

集群时区不同步,对应同时满足多个关键字且不在同一行报错;

权限不足,对应单个关键字报错。

可选地,所述装置还包括分类模块,

所述分类模块,用于根据所述任务中的执行步骤的先后顺序,对所述任务的运行日志进行分类收集,从而得到多个子日志文件;

所述匹配模块,用于根据所述多个子日志文件的产生顺序的倒序去进行匹配。

可选地,所述装置还包括分类模块,

所述分类模块,用于根据所述任务中的执行步骤的先后顺序,对所述任务的运行日志进行分类收集,从而得到多个子日志文件;

所述匹配模块,用于根据所述多个子日志文件的产生顺序的倒序去进行匹配。

可选地,所述多个子日志文件包括:引擎日志、非业务日志和业务日志。

可选地,所述引擎日志用于记录调度执行引擎时的系统相关信息;

所述非业务日志用于记录任务运行时的系统相关信息;以及,

所述业务日志用于记录任务运行时的算法相关信息。

可选地,所述引擎日志在所述任务运行之前的第一阶段生成,所述非业务日志在所述任务运行的第二阶段生成,所述业务日志在所述任务运行的第三阶段生成,所述第二阶段、所述第三阶段依时间顺序先后执行。

可选地,所述多个子日志文件包括引擎日志和非业务日志,

所述业务日志用于记录任务运行时的算法相关信息。

所述匹配模块,还用于从最后一条所述非业务日志开始从后向前依次匹配。

可选地,所述多个子日志文件包括引擎日志、非业务日志和业务日志,

所述匹配模块,还用于从最后一条所述业务日志开始从后向前依次匹配。

可选地,所述匹配模块,还用于当任务运行失败时,由执行引擎向调度器报错,由调度器执行所述匹配和展示到前端的步骤。

可选地,所述装置还包括运行模块,

所述运行模块,用于获取预置的与所展示的报错原因关键词对应的修复程序,运行所述修复程序。

可选地,所述运行模块,还用于在运行所述修复程序之前提示用户是否执行一键修复,当用户确认时再执行所述修复程序。

可选地,所述运行模块,还用于将运行所述修复程序的过程也写入所述任务的运行日志中。

可选地,通过websocket协议与前端建立通讯连接。

可选地,所述装置还包括发送模块,

所述获取模块,还用于根据所述任务的类型,获取预置与所述任务的类型对应的运行状态捕捉规则模型;

所述发送模块,用于当所述任务运行时,由所述运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示。

可选地,所述运行日志包括业务日志,所述任务为gbdt算法训练任务,

所述获取模块,还用于利用所述运行状态捕捉规则模型定位所述业务日志中的树建立信息,以获取所述树建立信息中的树建立开始时间、树建立结束时间、gbdt算法效果、所述任务的资源消耗、所述任务对应的加工数据条数;

所述发送模块,还用于将所述树建立信息进行绘图并实时发送到前端进行展示。

可选地,所述运行日志包括业务日志,所述任务为特征抽取任务,

所述获取模块,还用于利用所述运行状态捕捉规则模型定位所述业务日志中的每一行数据、每一种特征方法的处理信息,以获取所述处理信息中的处理开始时间、处理结束时间、特征方法是否生效、所述任务的任务所耗资源、特征方法生效比例;

所述发送模块,还用于将所述处理信息进行绘图并实时发送到前端进行展示。

可选地,所述运行日志包括业务日志,

所述发送模块,还用于在任务运行时,将实时接收的业务日志推送到前端,以使所述前端解析所述业务日志并进行实时展示。

可选地,所述运行日志包括业务日志,所述装置还包括解析模块。

所述接收模块,用于接收调度引擎推送的任务运行时生成的业务日志,所述业务日志用于记录所述执行引擎执行对应算子来运行所述任务时的算法相关信息;

所述解析模块,解析所述业务日志并实时展示给用户,以使所述用户根据展示的所述任务的运行状态确定是否继续执行所述任务。

可选地,所述装置还包括判断模块,

所述判断模块,用于实时查看所述任务运行时生成的业务日志;

根据所述业务日志判断所述任务的运行状态是否满足预设的任务结束运行条件;

在所述任务的运行状态满足所述预设的任务结束运行条件的情况下,结束所述任务的运行。

根据本公开的第三方面,还提供一种包括至少一个计算装置和至少一个存储装置的设备,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据以上第一方面所述的方法。

根据本公开的第四方面,还提供一种计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如以上第一方面所述的方法。

根据本公开实施例的方法,其能够将总结的报错原因关键词和与报错原因关键词对应的报错规则预先保存,并在任务运行失败时,根据所保存的报错规则去匹配任务运行日志,进而将匹配的报错规则所对应的报错原因关键词展示到前端。由于预先存储有报错规则和报错原因关键词的对应关系,因此,本公开实施例方法在任务运行失败时,能够直接根据总结出来的报错规则去匹配运行日志,以将匹配成功的报错规则所对应的报错原因关键词展示给用户,避免了人工手动发现问题,提高探测运行失败原因的效率,并且,实现了运行失败原因的自动探索和运行失败原因的可视化展示。

附图说明

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

图1是显示可用于实现本公开实施例的电子设备的硬件配置的原理框图;

图2示出了本公开实施例的任务运行日志的处理方法的流程示意图;

图3示出了本公开另一实施例的任务运行日志的处理方法的流程示意图;

图4示出了本公开实施例的任务运行日志的处理装置的原理框图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

下面,参照附图描述根据本发明实施例的各个实施例和例子。

<硬件配置>

本公开实施例的方法可以由至少一台电子设备实施,即,用于实施该方法的装置4000可以布置在该至少一台电子设备上。图1示出了任意电子设备的硬件结构。图1所示的电子设备可以是便携式电脑、台式计算机、工作站、服务器等,也可以是任意的具有处理器等计算装置和存储器等存储装置的其他设备,在此不做限定。

如图1所示,该电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100用于执行计算机程序。该计算机程序可以采用比如x86、arm、risc、mips、sse等架构的指令集编写。存储器1200例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括usb接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括wifi通信、蓝牙通信、2g/3g/4g/5g通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。电子设备1000可以通过扬声器1700输出语音信息,及可以通过麦克风1800采集语音信息等。

图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本公开的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本公开实施例的任务运行日志的处理方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。

在一个实施例中,提供了一种包括至少一个计算装置和至少一个存储装置的设备,该至少一个存储装置用于存储指令,该指令用于控制该至少一个计算装置执行根据本公开任意实施例的方法。

该设备可以包括至少一台图1所示的电子设备1000,以提供至少一个例如是处理器的计算装置和至少一个例如是存储器的存储装置,在此不做限定。

<方法实施例>

在本实施例中,提供一种任务运行日志的处理方法,该任务运行日志的处理方法可以是由电子设备实施,该电子设备可以是如图1所示的电子设备1000,电子设备1000可以是服务器,也可以是终端设备。即,本实施例的方法可以是由服务器实施,也可以是由终端设备实施,还可以是由服务器和终端设备共同实施,本实施例中的前端可以表示终端设备。

在本实施例的方法有终端设备参与实施的应用中,交互可以包括人机交互。在本实施例的方法有服务器参与实施的应用中,交互可以包括服务器与终端设备之间的交互。

根据图2所示,本实施例的任务运行日志的处理方法可以包括如下步骤s2100~s2300:

步骤s2100,获取并保存预置的报错原因关键词和对应的报错规则。

报错规则用于定义关键字,该报错规则可以基于描述任务运行失败对应报错原因的历史日志人工所总结和归纳出来的规则。该报错规则可以包括单个关键字报错、同时满足多个关键字且不在同一行报错,以及,同时满足多个关键字且在同一行(按顺序)报错之中的任意一项或多项。其中,以上多个关键字可以是不同的关键字。

报错原因关键词是基于报错规则筛选出来的关键字,该报错原因关键词可以包括内存不足、license超限、算法参数配置错误、脚本语法错误、集群时区不同步、及权限不足之中的任意一项或多项。其中,一个报错原因关键词可以对应一条报错规则,一条报错规则可以对应至少一个报错原因关键词,具体的,报错原因关键词和报错规则包括如下中的至少一种:

内存不足,对应单个关键字报错;

license超限,对应同时满足多个关键字且不在同一行报错;

算法参数配置错误,对应同时满足多个关键字且不在同一行报错;

脚本语法错误,对应同时满足多个关键字且不在同一行报错;

集群时区不同步,对应同时满足多个关键字且不在同一行报错;

权限不足,对应单个关键字报错。

以上对应关系反映报错原因关键词和报错规则之间的映射关系。该映射关系可以是映射表,该映射表中存储有报错原因关键词与报错规则之间的索引关系。可以理解的是,经过报错规则处理后,预置多达三十余项的报错原因关键词,该报错原因关键词的覆盖率在80%以上。

在本实施例中,根据以上步骤s2100获取并保存预置的报错原因关键词和对应的报错规则之后,进入:

步骤s2200,当任务运行失败时,根据所保存的报错规则去匹配任务运行日志。

以上任务例如但不限于包括算法训练任务、数据处理任务、数据拆分任务、特征抽取任务、算法预测任务、算法评估任务等任务。

实际应用场景当中,人工智能任务运行时,按照时间顺序可以包括:1、向计算集群提交任务;2、集群收到任务进行调度;3、调度成功,计算集群开始运行任务本身的处理逻辑;4、处理逻辑包含算法、数据直接相关的业务态信息,也包括非业务态信息。也就是说,人工智能任务天然是有子任务时间顺序的,在此,可以是根据任务中的执行步骤的先后顺序,对任务中的运行日志进行分类收集,从而得到多个子日志文件,以在任务运行失败时,根据所保存的报错规则去匹配多个子日志文件,并将匹配成功的报错规则所对应的报错原因关键词展示到前端。

在本实施例中,该步骤s2200中当任务运行失败时,根据所保存的报错规则去匹配任务运行日志可以进一步包括:当任务运行时,根据多个子日志文件的产生顺序的倒序去进行匹配,以节省匹配时间,提供匹配效率。

以上多个子日志文件可以包括引擎日志、非业务日志和业务日志。其中,该引擎日志用于记录调度执行引擎时的系统相关信息;该非业务日志用于记录任务运行时的系统相关信息;以及,该业务日志用于记录任务运行时的算法相关信息。其中,引擎日志在任务运行之前的第一阶段生成,非业务日志在任务运行的第二阶段生成,业务日志在任务运行的第三阶段生成,第二阶段、第三阶段依时间顺序先后执行。可以理解的是,此处的依时间顺序先后执行并不是严格的非重合串行,例如引擎日志是在10点开始,非业务日志是在10:20开始,业务日志是在10:30开始,此时引擎日志还在继续记录,并没有结束。

可以理解的是,在任务运行过程中,任何一个前续步骤发生失败,都不会运行后续步骤,而是会直接返回和错误日志,因此,最后一个日志,一定是发生错误(error)的日志,只是根本错误可能不在最后一个,而是从最开始的一个警告(warning)开始,该warning有别于error,不会导致终止运行,但是大多数情况是最后的错误日志为根本错误,从而,可以是根据该最后的一条错误日志确定任务运行失败出现的阶段。例如,最后一条错误日志为引擎日志,则任务是在第一阶段失败;又例如,最后一条错误日志为非业务日志,则任务是在第二阶段失败;再例如,最后一条错误日志为业务日志,则任务是在第三阶段失败。

本实施例中,可以对以上引擎日志、非业务日志和业务日志分别生成对应日志类型的标记,以便于工作人员根据标记查看不同类型的日志文件。

在一个例子中,子日志文件可以仅包括引擎日志。该步骤当任务运行失败时,根据多个子日志文件的产生顺序的倒序去进行匹配可以进一步包括:当任务运行失败时,从子日志文件记录的最后一条引擎日志开始从后向前依次匹配。

在一个例子中,子日志文件可以包括引擎日志和非业务日志。该步骤当任务运行失败时,根据多个子日志文件的产生顺序的倒序去进行匹配可以进一步包括:当任务运行失败时,从子日志文件记录的最后一条非业务日志开始从后向前依次匹配。

该例子中,可以是先从最后一条非业务日志开始从后向前依次匹配,接续从最后一条引擎日志开始从后向前依次匹配,也可以是从最后一条非业务日志开始从后向前交叉匹配非业务日志和引擎日志。

在一个例子中,子日志文件可以包括引擎日志、非业务日志和业务日志。该步骤当任务运行失败时,根据多个子日志文件的产生顺序的倒序去进行匹配可以进一步包括:当任务运行失败时,从子日志文件记录的最后一条业务日志开始从后向前依次匹配。

该例子中,可以是先从最后一条业务日志开始从后向前依次匹配,接续从最后一条非业务日志开始从后向前依次匹配,最后从最后一条引擎日志开始从后向前依次匹配,也可以是从最后一条业务日志开始从后向前交叉匹配业务日志、非业务日志和引擎日志。

以上例子会从记录时间最晚的子日志文件开始,从子日志文件的最后一行开始从后向前匹配报错规则,如果匹配成功,会直接将匹配成功的报错规则所对应到的报错原因关键词反馈到前端进行展示,从而实现自动解析和匹配报错原因的自动化。

在本实施例中,根据以上步骤s2200当任务运行失败时,根据所保存的报错规则去匹配任务运行日志之后,进入:

步骤s2300,将匹配成功的报错规则所对应的报错原因关键词展示到前端。

本实施例中,执行引擎和调度器可以是安装在服务器中,并在任务运行失败时,由执行引擎向调度器报错,由调度器执行匹配和展示到前端的步骤。即,可以是在任务运行失败时,由执行引擎向调度器报错,由调度引擎执行以上步骤s2200中的根据所保存的报错规则去匹配任务运行日志,并由调度引擎执行本步骤s2300将匹配成功的报错规则所对应的报错原因关键词展示到前端。

在一个例子中,匹配成功的报错规则可以是一个报错规则,例如匹配成功的报错规则可以是单个关键字报错,该匹配成功的报错规则所对应的报错原因关键词包括内存不足和权限不足,在此,将内存不足和权限不足展示到前端。又例如匹配成功的报错规则可以是同时满足多个关键字且不在同一行报错,该匹配成功的报错规则所对应的报错原因关键词包括license超限、算法参数配置错误和集群时区不同步,在此,将license超限、算法参数配置错误和集群时区不同步展示到前端。

在一个例子中,匹配成功的报错规则也可以是多个报错规则,例如同时包括单个关键字报错和同时满足多个关键字且不在同一行报错,该单个关键字报错所对应的报错原因关键词包括内存不足和权限不足,该同时满足多个关键字且不在同一行报错所对应的报错原因关键词包括license超限、算法参数配置错误和集群时区不同步,在此,可以是将内存不足、权限不足、license超限、算法参数配置错误和集群时区不同步展示到前端。

根据本公开实施例的方法,其能够将总结的报错原因关键词和与报错原因关键词对应的报错规则预先保存,并在任务运行失败时,根据所保存的报错规则去匹配任务运行日志,进而将匹配的报错规则所对应的报错原因关键词展示到前端。由于预先存储有报错规则和报错原因关键词的对应关系,因此,本公开实施例方法在任务运行失败时,能够直接根据总结出来的报错规则去匹配运行日志,以将匹配成功的报错规则所对应的报错原因关键词展示给用户,避免了人工手动发现问题,提高探测运行失败原因的效率,并且,实现了运行失败原因的自动探索和运行失败原因的可视化展示。

在一个实施例中,还可以是在将报错原因关键词展示到前端之后,基于与该报错原因关键词对应的修复程序对任务进行修复,以使得任务可以继续运行。该实施例中,该任务运行日志的处理方法还可以包括:

获取预置的与所展示的报错原因关键词对应的修复程序,运行修复程序。

以上修复程序是人工总结和归纳出来的,该修复程序可以是修复策略。本实施例中,可以是预先存储表示各个报错原因关键词和对应的修复程序的映射关系的映射数据,该映射数据可以是映射表,该映射表中存储有报错原因关键词与修复程序之间的索引关系。

例如,报错原因关键词为“内存不足”,其对应的修复程序为“检查当前算子资源配置,一般为算子计算需要内存资源大于当前设置内存资源,可以在辅助资源推荐结果基础上进行增加,比如把driver/executormemory增加50%,或者增加spark.yarn.executor.memoryoverhead(默认是execmemory*10%,可以适当翻倍到20%),num数是否下调要考虑预期的运行速度和集群资源配置”。

例如,报错原因关键词为“license超限”,其对应的修复程序为“请等待总运行资源在license限制之下后,再运行此任务”。

又例如,报错原因关键词为“脚本语法错误”,该脚本例如但不限于是sql语言、perl语言、python语言以及ruby语言等,以sql语言脚本语法错误为例,其对应的修复程序为“sql算子遵循sparksql语法,请检查sql脚本正确性”。

再例如,报错原因关键词为“集群时区不同步”,其对应的修复程序为“请对集群时区进行同步后再运行此任务”。

还例如,报错原因关键词为“权限不足”,其对应的修复程序为“您当前权限无法运行此任务,请联系管理员处理”。

本实施例中,可以是先获取存储有各个报错原因关键词和对应的修复程序的映射关系的映射表,以根据映射表和所展示的报错原因关键词获取与该报错原因关键词对应的修复程序,并运行修复程序,以使得任务可以继续运行。

在本实施例中,可以是将运行修复程序的过程也写入任务的运行日志中,以使得用户可以实时了解修复程序的运行过程。

在一个实施例中,还提供人机接口,以根据当前的实际需要确定是否要执行一键修复,以提高任务修复的灵活性。该实施例中,该任务运行日志的处理方法还包括:

在运行修复程序之前提示用户是否执行一键修复,当用户确认时再执行修复程序。

本实施例中,电子设备可以提供用于选择是否执行一键修复的模拟开关,并在开关为开启状态的情况下,表示用户确定执行一键修复,进而执行修复程序;或者,在开关为关闭状态的情况下,表示用户不执行一键修复。当然,电子设备还可以是提供设置接口,以通过设置接口设置用户是否执行一键修复,例如,该设置接口可以包括输入框、下拉列表、勾选项、语音输入等至少一种形式的接口,以便用户可以根据需要选择是否执行一键修复。

在一个实施例中,其在任务运行过程中,能够将任务的业务日志进行可视化展示,以使得用户可以直观的查看该任务的业务日志。该实施例中,该任务运行日志的处理方法可以包括:

在任务运行时,将实时接收的业务日志推送到前端,以使前端解析业务日志并进行实时展示。

本实施例中,可以是通过websocket协议与前端建立通讯连接,服务器可以基于该连接主动向前端发送业务日志,前端接收到业务日志后,会对该业务日志进行解析并将解析后的业务日志进行实时显示。

在一个实施例中,其在任务运行时,可以将任务的业务日志的运行状态信息进行可视化展示,以使得用户可以直观的查看任务的当前运行状态。如图3所示,本公开实施例的任务运行日志的处理方法还包括如下步骤s3100~s3200:

步骤s3100,根据任务的类型,获取预置与该任务的类型对应的运行状态捕捉规则模型。

运行状态捕捉规则模型用于获取对应任务的运行状态信息。本实施例中,可以是预先存储表示各个类型任务和对应的运行状态捕捉规则模型的映射关系的映射数据,该映射数据可以是映射表,该映射表中存储有任务与运行状态捕捉规则模型之间的索引关系。

本实施例中,不同的任务,对应不同的运行状态捕捉规则模型,同一个任务,根据算法原理的不同,也会对应不同的运行状态捕获规则模型。

例如,算法训练任务、数据处理任务、数据拆分任务、特征抽取任务、算法预测任务、算法评估任务等,均对应不同的运行状态捕捉规则模型。

又例如,算法训练任务中包括lr(逻辑回归)算法训练任务、gbdt(梯度提升决策树)算法训练任务等,该lr算法训练任务和gbdt算法训练任务对应不同的运行状态捕获规则模型。

步骤s3200,当任务运行时,由运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示。

本实施例中,可以是通过websocket协议与前端建立通讯连接,服务器可以基于该连接主动向前端发送任务的运行状态信息,以由前端将该运行状态信息进行展示。

在一个例子中,以上任务为特征抽取任务,该步骤s3200中由运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示可以进一步包括如下步骤s3210a~s3220a:

步骤s3210a,利用运行状态捕捉规则模型定位业务日志中的树建立信息,以获取树建立信息中的树建立开始时间、树建立结束时间、gbdt算法效果、任务的资源消耗、任务对应的加工数据条数。

步骤s3220a,将树建立信息进行绘图并实时发送到前端进行展示。

本步骤s3220a中,绘制出来的图形例如但不限于包括展示运行阶段的时间序列折线图、展示各特征方法消耗资源占比的饼状图、展示各特征方法生效比例的柱状图等等。

在一个例子中,以上任务为gbdt算法训练任务,该步骤s3200中由运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示可以进一步包括如下步骤s3210b~s3220b:

步骤s3210b,利用运行状态捕捉规则模型定位业务日志中的树建立信息,以获取树建立信息中的树建立开始时间、树建立结束时间、gbdt算法效果、任务的资源消耗、任务对应的加工数据条数。

步骤s3220b,将树建立信息进行绘图并实时发送到前端进行展示。

在一个实施例中,其可以根据用户的选择结果来确定是否继续执行任务,以实现任务运行的靶向性。该实施例中,运行日志包括业务日志,该任务运行日志的处理方法还可以包括如下步骤s4100~s4200:

步骤s4100,接收调度引擎推送的任务运行时生成的业务日志。

该业务日志用于记录执行引擎执行对应算子来运行任务时的算法相关信息。

步骤s4200,解析业务日志并实时展示给用户,以使用户根据展示的任务的运行状态确定是否继续执行任务。

在一个实施例中,其预先设置任务的结束运行条件,当满足结束条件时,主动结束任务的运行,以实现自动化定制。该实施例中,运行日志包括业务日志,该任务运行日志的处理方法还可以包括如下步s5100~s5200:

步骤s5100,实时查看任务运行时生成的业务日志。

步骤s5200,根据业务日志判断任务的运行状态是否满足预设的任务结束运行条件。

步骤s5300,在任务的运行状态满足预设的任务结束运行条件的情况下,结束任务的运行。

<装置实施例>

在本实施例中,提供一种任务运行日志的处理装置4000,如图4所示,包括获取模块4100、匹配模块4200及展示模块4300。

所述获取模块4100,用于获取并保存预置的报错原因关键词和对应的报错规则。

所述匹配模块4200,用于当任务运行失败时,根据所保存的报错规则去匹配任务运行日志。

所述展示模块4300,用于将匹配成功的报错规则所对应的报错原因关键词展示到前端。

在一个实施例中,所述报错原因关键词和对应的报错规则包括如下中的至少一种:

内存不足,对应单个关键字报错;

license超限,对应同时满足多个关键字且不在同一行报错;

算法参数配置错误,对应同时满足多个关键字且不在同一行报错;

脚本语法错误,对应同时满足多个关键字且不在同一行报错;

集群时区不同步,对应同时满足多个关键字且不在同一行报错;

权限不足,对应单个关键字报错。

在一个实施例中,装置4000还包括分类模块(图中未示出)。

该分类模块,用于根据所述任务中的执行步骤的先后顺序,对所述任务的运行日志进行分类收集,从而得到多个子日志文件。

该匹配模块4200,还用于根据所述多个子日志文件的产生顺序的倒序去进行匹配。

在一个实施例中,所述多个子日志文件包括:引擎日志、非业务日志和业务日志。

在一个实施例中,所述引擎日志用于记录调度执行引擎时的系统相关信息。

所述非业务日志用于记录任务运行时的系统相关信息;以及,

所述业务日志用于记录任务运行时的算法相关信息。

在一个实施例中,所述引擎日志在所述任务运行之前的第一阶段生成,所述非业务日志在所述任务运行的第二阶段生成,所述业务日志在所述任务运行的第三阶段生成,所述第二阶段、所述第三阶段依时间顺序先后执行。

在一个实施例中,所述匹配模块4200,还用于从最后一条所述非业务日志开始从后向前依次匹配。

在一个实施例中,所述多个子日志文件包括引擎日志、非业务日志和业务日志。

所述匹配模块4200,还用于从最后一条所述业务日志开始从后向前依次匹配。

在一个实施例中,所述匹配模块,还用于当任务运行失败时,由执行引擎向调度器报错,由调度器执行所述匹配和展示到前端的步骤。

在一个实施例中,装置4000还包括运行模块(图中未示出)。

所述运行模块,用于获取预置的与所展示的报错原因关键词对应的修复程序,运行所述修复程序。

在一个实施例中,所述运行模块,还用于在运行所述修复程序之前提示用户是否执行一键修复,当用户确认时再执行所述修复程序。

在一个实施例中,所述运行模块,还用于将运行所述修复程序的过程也写入所述任务的运行日志中。

在一个实施例中,通过websocket协议与前端建立通讯连接。

在一个实施例中,装置4000还包括发送模块(图中未示出)。

所述获取模块4100,还用于根据所述任务的类型,获取预置与所述任务的类型对应的运行状态捕捉规则模型。

所述发送模块,用于当所述任务运行时,由所述运行状态捕捉规则模型获取该任务的运行状态信息,并发送到前端进行展示。

在一个实施例中,所述运行日志包括业务日志,所述任务为gbdt算法训练任务。

所述获取模块4100,还用于利用所述运行状态捕捉规则模型定位所述业务日志中的树建立信息,以获取所述树建立信息中的树建立开始时间、树建立结束时间、gbdt算法效果、所述任务的资源消耗、所述任务对应的加工数据条数。

所述发送模块,还用于将所述树建立信息进行绘图并实时发送到前端进行展示。

在一个实施例中,所述运行日志包括业务日志,所述任务为特征抽取任务。

所述获取模块4100,还用于利用所述运行状态捕捉规则模型定位所述业务日志中的每一行数据、每一种特征方法的处理信息,以获取所述处理信息中的处理开始时间、处理结束时间、特征方法是否生效、所述任务的任务所耗资源、特征方法生效比例。

所述发送模块,还用于将所述处理信息进行绘图并实时发送到前端进行展示。

在一个实施例中,所述运行日志包括业务日志。

所述发送模块,还用于在任务运行时,将实时接收的业务日志推送到前端,以使所述前端解析所述业务日志并进行实时展示。

在一个实施例中,所述运行日志包括业务日志,装置4000还包括解析模块(图中未示出)。

所述接收模块,用于接收调度引擎推送的任务运行时生成的业务日志,所述业务日志用于记录所述执行引擎执行对应算子来运行所述任务时的算法相关信息。

所述解析模块,解析所述业务日志并实时展示给用户,以使所述用户根据展示的所述任务的运行状态确定是否继续执行所述任务。

在一个实施例中,装置4000还包括判断模块(图中未示出)。

所述判断模块,用于实时查看所述任务运行时生成的业务日志;根据所述业务日志判断所述任务的运行状态是否满足预设的任务结束运行条件;在所述任务的运行状态满足所述预设的任务结束运行条件的情况下,结束所述任务的运行。

<存储介质实施例>

本实施例提供了一种计算机可读存储介质,其中,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据上述方法实施例中任一项所述的方法。

本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1