一种错误自动处理方法及装置的制造方法
【专利摘要】本发明实施例提供一种错误的自动处理方法。当检测到调度任务运行错误时,获取所述调度任务的错误日志;根据所述错误日志,获取与所述错误日志对应的错误特征词;根据所述获取的错误特征词,查询错误原因分类器,获取与所述错误特征词对应的错误原因,所述错误原因分类器中保存有所述错误特征词与错误原因的对应关系;根据所述错误原因,执行与所述错误原因对应的错误处理预案,从而实现了错误的自动处理,节约了人力成本,同时也提高了调度系统的失败重算效率,确保了大数据任务的及时完成。
【专利说明】
一种错误自动处理方法及装置
技术领域
[0001] 本发明实施例涉及计算机领域,尤其涉及一种错误自动处理方法。
【背景技术】
[0002] 在大数据调度系统中,每天运行成百上千个任务,且任务依赖性高,一旦出错,需 要大量人工处理,分析错误日志、通过日志定位错误原因的工作,仍然需要开发人员的人工 干预。所以本发明实施例,试图通过对错误日志进行文本挖掘,自动定位错误原因,根据不 同的错误原因执行相应的错误处理预案,并且通过系统使用人员的反馈,不断的修正错误 的结果,经过反复训练直至达到专业开发人员的分析能力。这样便能够降低开发人员对每 一个作业的维护成本,提升工作效率。
【发明内容】
[0003] 本发明实施例提供一种错误的自动处理方法及设备,用以解决现有技术中用户需 开发人员分析错误日志、通过日志定位错误原因的缺陷,实现了调度任务的错误原因的自 动查询和自动处理。
[0004] 本发明实施例提供一种错误的自动处理方法,包括:
[0005] 当检测到调度任务运行错误时,获取所述调度任务的错误日志;
[0006] 获取与所述错误日志对应的错误特征词;
[0007] 调用预先训练的错误原因分类器对获取的所述错误特征词进行识别,获取与所述 错误特征词对应的错误原因,所述错误原因分类器中保存有错误特征词与错误原因的对应 关系;
[0008] 根据所述错误原因,执行与所述错误原因对应的错误处理预案。
[0009] 本发明实施例提供一种错误的自动处理装置,包括:
[0010] 错误日志获取模块,用于当检测到调度任务运行错误时,获取所述调度任务的错 误曰志;
[0011] 错误特征词获取模块,用于获取与所述错误日志对应的所述错误特征词;
[0012] 错误原因查询模块,用于调用预先训练的错误原因分类器对获取的所述错误特征 词进行识别,获取与所述错误特征词对应的错误原因,其中,所述错误原因分类器中保存有 所述错误特征词与所述错误原因的对应关系;
[0013] 错误处理模块,用于根据所述错误原因,执行与所述错误原因对应的错误处理预 案。
[0014] 本发明实施例提供的错误自动处理方法及装置,将数据挖掘算法运用到调度算法 中,对出错情况自动分类,估算分类概率。然后根据分类概率执行对应的预案,大大节约了 开发人员对每一个作业的维护成本,避免了人在重复劳动过程中易犯错的特点,提升开发 人员的工作效率。同时也提高了调度系统的失败重算效率,确保了每天及时完成大数据计 算任务。
【附图说明】
[0015] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。
[0016] 图1为本发明实施例一的技术流程图;
[0017] 图2为本发明实施例二的技术流程图;
[0018] 图3为本发明实施例三的技术流程图;
[0019] 图4为本发明实施例四的技术流程图;
[0020] 图5为本发明实施例五的结构示意图。
【具体实施方式】
[0021] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了 便于阅读者理解此方案,本申请的实施例以数据处理为应用场景来描述,但是,本申请的具 体应用领域不限制于此,例如,还可以是:通信、支付等有大量处理任务的场景。
[0022] 实施例一:
[0023] 图1为本发明实施例一的技术流程图,如图1所示,本发明实施例一可包括如下步 骤:
[0024] 步骤101:当检测到调度任务运行错误时,获取所述调度任务的错误日志;
[0025] 所述错误日志是软件用来记录运行时出错信息的文本文件。编程人员和维护人员 等可以利用错误日志对系统进行调试和维护。每个运行失败的作业的运行日志中都包含了 错误的信息,开发人员根据错误信息很容易地将错误原因进行归类,比如:标记错误原因标 签。
[0026] 步骤102:根据所述错误日志,获取与所述错误日志对应的错误特征词;
[0027] 每一个调度任务运行失败的错误日志都有着一定的特征,开发人员能够通过分 析这些特征,根据某些关键词汇定位任务运行失败的原因,这些关键词汇就是所述的错误 日志对应的错误特征词。当然,这些表征错误原因的关键词分布在错误日志的各个字段中。
[0028] 步骤103:调用预先训练的错误原因分类器对获取的所述错误特征词进行识别, 获取与所述错误特征词对应的错误原因,所述错误原因分类器中保存有错误特征词与错误 原因的对应关系;
[0029] 大数据调度系统作业时,每个计算作业运行失败都对应着一定的错误原因,本发 明实施例中将这几种失败的原因进行总结,主要列举如下种类:
[0030] (1)任务运行超时。调度任务中,每一个计算作业的运行时间都是一定的。为了能 够保证作业不会因为异常原因无限期的执行下去,使得开发人员无法及时的获取到任务的 异常状态,开发人员会根据经验为每个计算作业配置超时时间:如果作业不能在指定时间 内完成,便认为是失败的。作业运行超时的原因有很多种,可能是由于Hadoop本身软件不 稳定,导致某一个MapReduce的Task迟迟无法结束,也有可能是因为集群计算资源不足,导 致某个计算作业花费了比平时更长的时间来完成。这种情况通过错误日志可以很容易的看 出来,因为这种错误日志的文本中包含有明显的特征词汇,比如build timed out,Marking the build as failed 等;
[0031] (2)运行环境异常。一个作业能够正常的运行一般都对其所运行的环境有一定的 要求。比如,MapReduce作业依赖与Hadoop的运行环境,所以在作业的执行节点必须安装 有Hadoop程序。Hadoop程序必须配置了集群的NameNode和JobTracker的hostname,作 业运行节点自身的/etc/hosts文件也必须含有集群NameNode和JobTracker的hostname 和它们ip地址的映射。这样配置完成后,该运行节点上才能成功的运行一个MapReduce 任务。通常一个计算作业的上线,都需要开发人员与运维人员配合,对作业执行节点进行 指定的配置,包括安装一些程序,添加环境变量,添加本地依赖库,向DBA申请运算节点对 某一些数据库的访问权限等等。可是由于某些原因执行节点的环境可能会出现异常,比如 运维人员新增加了运行节点却遗漏了某些配置,或是由于程序bug导致某些依赖文件被误 删,此时作业运行就会出错。对于本地依赖库缺失或是环境变量缺失的情况,通常会导致 作业无法找到指定的文件或是程序路径而出错,表现在运行日志里会出现类似与problem accessing file,command not found的错误。而对于例如集群访问权限或是数据库访问 权限的缺失,通常在运行日志里会出现not permited,access denied的字样。
[0032] (3)程序bug。最常见的作业出错原因还是程序本身的bug。新上线的作业通常由 于测试不充分存在或多或少的bug,在运行的过程中可能出现各种较多的失败情况。而已经 在线上运行的作业也有可能因为需求的变更导致程序被修改,引入了 bug,使得原本能够正 常运行的作业也出现了失败的情况。这种情况下,作业一般都会由于程序抛出了 runtime exception而异常中止,错误日志中一般都会打印出异常的堆栈信息。
[0033] 本发明实施例中,所述错误原因分类器利用现有的大量错误日志样本进行训练得 到,所述错误原因分类器中的每种分类的类别分别与不同的错误原因一一对应,每当有计 算作业出错的时候,通过获取计算作业的所述错误日志,根据所述错误原因分类器查询其 属于哪一种错误原因的可能性最大,就可知道所述计算作业的错误原因。
[0034] 步骤104:根据所述错误原因,执行与所述错误原因对应的错误处理预案。
[0035] 当得到计算作业错误的所述错误原因之后,判断错误原因类别,如果是由于作业 超时造成的,则发邮件通知集群管理人员,并且自动在一段时间后试图重新计算该作业; 如果是由于环境错误造成的,则需要发邮件通知运维人员,由运维人员排除环境故障后,再 手动重算该作业;如果是由于程序bug造成的,则应该通知该作业的开发人员检查程序错 误。
[0036] 当然,本发明实施例中所述的三种计算作业的错误原因类别和所述错误处理预案 仅仅是计算作业的所述错误原因和所述错误处理预案的一部分,本发明实施例并不仅限于 此。
[0037] 实施例二
[0038] 图2为本发明实施例二的技术流程图,所述错误特征词是错误日志的文本中可能 包含错误原因的词汇,但是错误日志通常是以文本的形式出现,因此需通过一定的策略提 取出所述错误特征词。根据图2,本发明实施例获得所述错误特征词的步骤如下:
[0039] 步骤201 :根据正则表达式对所述错误日志样本的文本进行词汇分割;
[0040] 为了提取出所述错误特征词,需要对每个文本进行词汇分割。由于计算作业运行 的日志都是Had 〇〇p、Hive框架或是Linux操作系统生成的,所以日志内容都是英文的,这大 大降低了词汇分割的难度。
[0041] 本发明实施例中采用正则表达式[~a-z]+作为文本分割的标准,由于英文中不同 词汇之间都是由空格或者其他标点符号分割开来的,所以只需要以非字母字符作为分隔符 号,即可将每一个词汇提取出来。
[0042] 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码 中常简写为regexjegexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串 来描述、匹配一系列符合某个句法规则的字符串。本发明实施例中采用正则表达式[~a-z] + 作为文本分割的标准,在所述错误日志的文本中,将除a~z之外的非字母字符作为分割 符,即当文本中出现除a~z之外的非字母字符就进行分割,这样便得到所述错误日志的文 本中的词汇集合。
[0043] 优选的,本发明实施例还可以包括步骤202 :将所有词汇转换为小写;
[0044] 所述错误日志的文本中同一个词汇若是以不同的大小写形式出现,应该被认为是 同一个词汇,所以本发明实施例在处理样本数据时将所有词汇转换成小写,这样能够提高 训练样本的质量以及所述特征词的准确性。
[0045] 优选的,本发明实施例还可以包括步骤203 :获取所述词汇分割操作后的文本中 的最后N个词汇;
[0046] 本发明实施例中对每个日志文本词汇分割的结果进行进一步筛选才能够使得不 同错误原因类别中的词汇分布各具有独特性,从而有效的提升分类器的性能。
[0047] 本实施例中取N= 300,即首先获取每个错误日志文本最后300个词汇作为真正的 错误信息;
[0048] 其中,300个词汇这是通过对大量日志进行观察、测试后得出来的经验数值,通常 错误日志文本中的最后300个词汇能囊括几乎全部错误日志中真正表达错误原因的信息。
[0049] 优选的,本发明实施例还可以包括步骤204 :滤除停用词;
[0050] 停用词主要包括两类,一类是人类语言中被大量使用的功能词,比 如'the',' is',' at'等,这些功能词没有什么实际含义。另一类词包括在特定领 域里被广泛使用的词汇,比如在搜索领域里,'want'等词出现的频率很高,但是对这样的 词让搜索引擎难以给出真正相关的搜索结果,所以通常会被去除掉。
[0051] 错误日志文本不同与一般的英文文章,不会出现大量语言中的功能词,所以第一 类停用词不需要考虑。可是大数据相关的计算作业一般都是MapReduce任务或是hive 建表、查询的工作,其日志文本具有很大的相似性。例如,每个hive相关的操作都会产 生类似下面的日志内容"WARNING:org. apache, hadoop. metrics, jvm. EventCounter is deprecated","Time taken:...seconds"。而 MapReduce 的运行记录"INFO mapred. JobClient:map. . ? % reduce. . ? %"更是会在每一个作业的日志中大量重复的出现。所以 如果直接将日志文本进行词汇分割然后进行训练,无疑会因为这些高频且无法表达出各个 类别之间区别的词汇,而影响到所述错误原因分类器的性能。
[0052] 进一步对日志文本分析,发现每个日志文本的开始都会出现大量的任务初始化日 志,例如,MapReduce 任务的启动日志 "Starting Job = job. ?? Tracking URL = http:// hadoopNNl. com:50030/jobdetails. jsp ? ???Kill Command = /usr/local/hadoop/bin/ hadoop job-kill..."。这些日志对于作业出错原因的识别毫无帮助。而只有日志的最末 端才会记录下导致作业中止的异常原因。
[0053] 通过对训练样本数据的文本进行词频统计,将一些在每个类别中都出现较多且与 错误原因无关的词汇提取出来,具体包括"〇rg","apache","hadoop","metrics","jvm"," eventcounter,,) ^ log^, ^ log4j ^hive^, ^history ^ jenkins,,) ^ <<nHpreduce,,, ^ job^, umpper,f, <<reducer,,) tage","map","reduce","cumulative","cpu","sec","lanuch","mapred"," info","jobcli ent"," seconds", "finished"等等,将这些词滤除掉能够极大程度的提升所述错误原因分类 器的性能。
[0054] 优选的,本发明实施例还可以包括步骤205 :对所述错误日志样本进行噪音数据 滤除操作,滤除所述错误日志样本中的邮件发送日志。
[0055] 错误日志的最后往往都会有邮件发送的日志,比如"Sending e-mails to:mail@ abed, com",其中mailOabcd. com在数据预处理进行词汇分割的时候会被拆分成mail、 abed、com三个词汇,其中abed和com在不同错误原因类别中出现的频次基本一致,可是 mail这个词汇只在某一类别中出现过几次。如果测试数据中出现有mail@abcd.com的字 样,就都会有很大概率被分配到所述某一类别中,反而降低了真正错误关键字在分类时的 判断比重,造成分类错误。
[0056] 因此为了提升分类效果,本发明实施例在数据预处理的过程中对词汇进行过滤时 必须将符合{. * ? @abcd. com}正则匹配规则的词语过滤掉再进行分类训练。
[0057] 值得注意的是,本发明实施例中的优选步骤202、步骤203、步骤204、步骤205之间 并没有特定的先后顺序,可以是按照上述所描述的顺序,也可以是这几个步骤的任意排序, 本发明实施例并不限于此。
[0058] 实施例三
[0059] 图3是本发明实施例三的技术流程图,根据获取的所述错误特征词,查询错误原 因分类器之前,需要对所述错误原因分类器进行训练,训练所述错误原因分类器进一步包 括如下步骤:
[0060] 步骤301 :以现有的调度任务产生的错误日志为样本进行所述错误原因分类器训 练的数据准备;
[0061] 针对不同的错误,选取相应的错误日志作为数据样本,在样本选取时尽可能覆盖 所有的错误种类,且要注意数据分布的均匀性。因样本的质量在很大程度上决定了分类器 的质量。
[0062] 步骤302 :对每个错误日志样本的文本进行所述词汇分割、以及所述词汇过滤操 作,从而获取所述错误日志样本的所述错误特征词。
[0063] 本发明实施例中,采用朴素贝叶斯算法进行所述错误原因分类器的训练,此步骤 是为了获得朴素贝叶斯分类器训练样本的特征属性。在本发明实施例中,所述特征属性就 是所述错误日志样本的文本中的所述错误特征词。获取所述错误特征词的具体步骤与实施 例二的步骤无异,此处不再赘述。
[0064] 步骤303 :根据预设的错误原因划分策略,将所述错误特征词划分到对应的所述 错误原因类别下,形成所述错误原因分类器的训练样本集合;
[0065] 本发明实施例中所述预设的错误原因划分策略预先由人工根据经验进行划分,如 本发明实施例一中所述,每一种错误原因对应的一类错误日志总会反复出现一些表征错误 原因的关键词,这些关键词就是划分类别的根据。
[0066] 本发明实施例中,将调度任务的所有错误原因作为类别集合,每一种错误原因类 即是所述类别集合下的一个元素项;每一种错误原因类下对应的所述错误特征词即是其特 征属性。
[0067] 本发明实施例中,将所述类别集合定义为C = {yp y2......yj,其中是n种错误 原因类,i G [l,n];
[0068] 本发明实施例中,设错误日志为x = {a。a2......am},其中,a_j是x的特征属性,在 本发明实施例中为每一类型错误日志的错误特征词,j G [l,m]。
[0069] 步骤304 :计算每个所述错误原因类在训练样本集合的出现频率,即计算P(yi),其 中 i e [l,n];
[0070] 步骤305 :计算每个所述特征词对每种所述错误原因类的条件概率,即计算 P(aj|yi);
[0071] 本步骤中,需进行计算的各项如下所述:
[0072] P (ai | yj、P (a21 yj......;
[0073] P (a! | y2)、P (a21 y2)......P(am|y2);
[0074] ......
[0075] P (a! | yn)、P (a21 yn)......P(am|yn);
[0076] 根据朴素贝叶斯分类原理:
[0077] 若 P (yk | x) = max {P (y! | x),P (y21 x),... P (yn | x)},贝lj x G yk。
[0078] 因此需要计算出每个P (yi | x),从而寻求最大值来判断x应属的类别。根据贝叶斯 定理:
公式1
[0080] 公式1中分母P(x)对所有类别可视为常数,因此将分子最大化皆可,并不影响结 果的比较。又因各个特征属性相互独立,所以有:
[0082] 公式 2
[0083] 因此在上一步计算出P(y;)的基础上,本步骤中要分别计算出每个所述特征词对 每个所述错误原因类的条件概率P (a, | yi),这便是所述错误原因分类器的训练。
[0084] 本发明实施例中,采用Newlisp作为数据分析的有效工具,因Newlisp默认提供了 朴素贝贝叶斯训练的方法。训练代码如下:
[0085] (bayes-train el e2 e3 1 L)
[0086] 其中,el e2 e3分别代表三类错误原因对应的错误日志样本,训练出的模型保留 在Context L中,当然本发明实施例的错误类别不限于三种。
[0087] 步骤306 :根据所述错误原因预设对应的所述错误原因处理预案,并将所述错误 原因与所述错误处理预案的对应关系保存在所述错误原因分类器中。
[0088] 本法明实施例中,可以对所述错误原因处理预案进行如下设计,若错误原因是由 于作业超时造成的,则发邮件通知集群管理人员,并且自动在一段时间后试图重新计算该 作业;若错误原因是由于环境错误造成的,则需要发邮件通知运维人员,由运维人员排除环 境故障后,再手动重算该作业;如果是由于程序bug造成的,则应该通知该作业的开发人员 检查程序错误等等。本发明实施例包括但并不限于此。
[0089] 实施例四
[0090] 如图4所示是本发明实施例四的技术流程图,根据图4,本发明实施例根据获取的 所述错误特征词,查询错误原因分类器,获取与所述错误特征词对应的错误原因执行与所 述错误原因对应的错误处理预案,进一步包括如下步骤:
[0091] 步骤401 :根据已知的P(yi)对每个错误原因类别计算P(x|yi)P(yi);
[0092] 本发明实施例中,将待分类的错误日志记为x,x是待分类的所述特征词的集合, 在训练好的所述错误原因分类器中进行查询后得到x中的所述特征词对每种错误原因类 的条件概率,即假设所述特征词为 ai、a3、a5,则此处需在分类器中查询P (ai | yi)、P (a31 yi)、 P(a5|yi)的值,根据公式2可得:
[0093] P (x | y;) P (y;) = P (y;) P (a! | y;) P (a31 y;) P (a51 y;)
[0094] 得到每一个?(1|71)?(71)后,根据如下公式1:
公式1
[0096] 便可得到每一个P匕| x),即:
[0097] P (y! | x),P (y21 x),…P (yn | x)
[0098] 步骤402 :以P(x|yi)P(yi)的最大项作为x的所属错误原因类别;
[0099] 若:
[0100] P(yk|x) = maxtPh |x),P(y2|x),…P(yn|x)}
[0101] 贝lj :
[0102] x G yk
[0103] 本发明实施例中,若是出现一条从错误日志中提取出来的词汇集合,只需要通过 Newlisp自带的查询方法,就可以计算所述词汇集合分属与不同种类错误类别的概率。承接 实施例三中的例子,分类代码示例如下:
[0104] (bayes-query e4 ' L)
[0105] - (0. 8 0. 2 0)
[0106] 代码中,e4是新获取的所述错误日志,由概率计算结果显示,新获取的所述错误日 志e4属于所述错误原因类别1的概率为0. 8,属于所述错误原因类别2的概率为0. 2,因此 可以认定e4的错误原因是类别1。
[0107] 步骤403 :根据所述错误原因查询相应的处理预案并执行。
[0108] 根据所述错误原因分类器训练时为每种错误原因预设的处理预案,即可实现错误 的自动处理,为整个调度系统节省运维成本。
[0109] 优选的,每个错误预案的处理结果都需进行反馈从而实现对所述错误原因分类器 的迭代训练。若判断所述处理预案错误,则对所述处理预案对应的所述错误日志进行所述 错误原因的重新分类并在分类正确后将所述错误日志的所述错误特征词作为新样本进入 所述错误原因分类器继续训练从而更新所述错误原因分类器。这样做能够通过进一步地对 数据进行挖掘提高所述错误原因分类器的工作能力,提升错误处理系统对大数据的处理 效率。
[0110] 具体做法为,为所述错误原因分类器设置反馈机制,接收用户对所述错误处理预 案的反馈,若反馈结果显示所述错误处理预案不能够正确地解决问题,则重新对所述错误 日志的原因进行正确分类,将所述错误日志作为新的样本,因所述错误日志已经进行了错 误原因特征词的提取操作,因此迭代训练的过程只需要将这个错误日志对应的X' = {ai, a2……aj再计算每个所述特征词对每种所述错误原因类的条件概率P (a, | yi),其余步骤同 本发明实施例三中所描述的方法,此处不再赘述。
[0111] 值得注意的是,若是在所述错误原因分类器的查询过程中,无法查询出错误原因, 即现有训练出的类别中没有所述错误原因对应的类别,则将对错误原因增加新的分类类 另IJ,即所述类别集合C= {yi,y2……yj中将继续增加新的类别项,此时还需为这一错误原 因类别以及已有的错误原因类别重新计算P( yi)、P(a]|yi)等,步骤仍如本发明实施例三中 所示,此处不再赘述。
[0112] 实施例五
[0113] 如图5所示,本发明实施例一种错误自动处理装置,包括如下几个模块:错误日志 获取模块501,错误特征词获取模块502,错误原因查询模块503,错误处理模块504,错误原 因分类器训练模块505。
[0114] 其中,所述错误日志获取模块501,用于当检测到调度任务运行错误时,获取所述 调度任务的错误日志;
[0115] 所述错误特征词获取模块502,用于获取与所述错误日志对应的错误特征词;
[0116] 所述错误特征词获取模块502进一步还用于,根据正则表达式对错误日志的文本 进行词汇分割,得到若干词汇组成的词汇序列;
[0117] 对所述词汇序列进行词汇过滤从而获取所述错误特征词,所述错误特征词是能够 表示错误原因的词汇。其中,所述词汇过滤进一步包括获取所述词汇序列中的最后N个词 汇,并滤除停用词与噪音数据,其中,所述停用词是与错误原因无关且出现频率高于某一特 定阈值的词汇。
[0118] 所述错误原因查询模块503,用于调用预先训练的错误原因分类器对获取的所述 错误特征词进行识别,获取与所述错误特征词对应的错误原因,所述错误原因分类器中保 存有错误特征词与错误原因的对应关系;
[0119] 所述错误原因查询模块503进一步用于,根据朴素贝叶斯算法,计算所述获取的 错误特征词属于不同的错误原因的概率值,将最大的概率值对应的错误原因作为所述获取 的错误特征词对应的错误原因。
[0120] 所述错误处理模块504,用于根据所述错误原因,执行与所述错误原因对应的错误 处理预案。
[0121] 所述装置进一步包括错误原因分类器训练模块505,所述错误原因分类器训练模 块503用于根据错误日志样本的样本训练所述错误原因分类器。
[0122] 所述错误原因分类器训练模块503还用于对所述错误日志的文本进行所述词汇 分割以及所述词汇过滤操作,从而获取所述错误日志的所述特征词;根据所述错误日志的 所述特征词进行错误原因分类器的查询,计算所述特征词分属于所述不同错误原因类别的 概率值,将所述概率的最大类别作为所述调度任务运行错误的原因。
[0123] 优选地,所述装置还包括:错误原因分类器迭代训练模块506,用于根据处理预案 的反馈结果,重新确定错误原因类别,并将所述错误日志的错误特征词加入重新确定的错 误原因类别的样本集合,重新训练从而更新所述错误原因分类器。对每个所述调度任务的 所述错误日志的查询结果均要进行反馈修正以实现对所述错误原因分类器的不断地迭代 训练,其中,反馈修正是指根据用户针对所述错误处理预案的反馈内容对所述错误日志进 行错误原因的正确分类,同时将所述错误日志作为自动增量式训练的新的所述样本进入所 述错误原因分类器继续训练从而更新所述错误原因分类器。若判断所述处理预案错误,则 对所述处理预案对应的所述错误日志进行所述错误原因的重新分类并在分类正确后将所 述错误日志的所述错误特征词作为新样本进入所述错误原因分类器继续训练从而更新所 述错误原因分类器。
[0124] 以上所描述的装置实施例仅仅是示意性的,最后应说明的是:以上实施例仅用以 说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明, 本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修 改,或者对其中部分技术特征词进行等同替换;而这些修改或者替换,并不使相应技术方案 的本质脱离本发明各实施例技术方案的精神和范围。
[0125] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该 计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施 例或者实施例的某些部分所述的方法。
[0126] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
【主权项】
1. 一种错误自动处理方法,其特征在于,包括如下步骤: 当检测到调度任务运行错误时,获取所述调度任务的错误日志; 获取与所述错误日志对应的错误特征词; 调用预先训练的错误原因分类器对获取的所述错误特征词进行识别,获取与所述错 误特征词对应的错误原因,所述错误原因分类器中保存有错误特征词与错误原因的对应关 系; 根据所述错误原因,执行与所述错误原因对应的错误处理预案。2. 根据权利要求1所述的方法,其特征在于,根据所述错误日志,获取与所述错误日志 对应的错误特征词,进一步包括: 根据正则表达式对错误日志的文本进行词汇分割,得到若干词汇组成的词汇序列; 对所述词汇序列进行词汇过滤从而获取所述错误特征词,所述错误特征词是能够表示 错误原因的词汇。3. 根据权利要求2所述的方法,其特征在于,所述对所述词汇序列进行词汇过滤,进一 步包括: 获取所述词汇序列中的最后N个词汇,并滤除停用词与噪音数据,其中,所述停用词是 与错误原因无关且出现频率高于某一特定阈值的词汇。4. 根据权利要求1所述的方法,所述调用预先训练的错误原因分类器对获取的所述错 误特征词进行识别,获取与所述错误特征词对应的错误原因,进一步包括: 根据朴素贝叶斯算法,计算所述获取的错误特征词属于不同的错误原因的概率值,将 最大的概率值对应的错误原因作为所述获取的错误特征词对应的错误原因。5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述调用预先训练的错误原 因分类器对获取的所述错误特征词进行识别之前,进一步包括: 对预先采集的每个错误日志样本的文本进行词汇分割操作、以及词汇过滤操作,获取 每个错误日志样本的错误特征词; 根据预设的错误原因划分策略,将每个错误日志样本的错误特征词划分到对应的错误 原因类别下,形成所述错误原因分类器的训练样本集合; 根据朴素贝叶斯分类法对所述训练样本集合进行错误原因训练,得到所述错误原因分 类器; 根据所述错误原因预设对应的所述错误原因处理预案,并将所述错误原因与所述错误 处理预案的对应关系保存在所述错误原因分类器中。6. 根据权利要求1-4所述的方法,其特征在于,所述调用预先训练的错误原因分类器 对获取的所述错误特征词进行识别之后,进一步包括: 根据处理预案的反馈结果,重新确定错误原因类别,并将所述错误日志的错误特征词 加入重新确定的错误原因类别的样本集合,重新训练从而更新所述错误原因分类器。7. -种错误自动处理装置,其特征在于,包括如下模块: 错误日志获取模块,用于当检测到调度任务运行错误时,获取所述调度任务的错误日 志; 错误特征词获取模块,用于获取与所述错误日志对应的所述错误特征词; 错误原因查询模块,用于调用预先训练的错误原因分类器对获取的所述错误特征词进 行识别,获取与所述错误特征词对应的错误原因,其中,所述错误原因分类器中保存有所述 错误特征词与所述错误原因的对应关系; 错误处理模块,用于根据所述错误原因,执行与所述错误原因对应的错误处理预案。8. 根据权利要求7所述的装置,其特征在于,所述装置进一步包括:错误原因分类器训 练模块,所述错误原因分类器训练模块用于对预先采集的每个错误日志样本的文本进行词 汇分割操作、以及词汇过滤操作,获取每个错误日志样本的错误特征词; 根据预设的错误原因划分策略,将每个错误日志样本的错误特征词划分到对应的错误 原因类别下,形成所述错误原因分类器的训练样本集合; 根据朴素贝叶斯分类法对所述训练样本集合进行错误原因训练,得到所述错误原因分 类器; 根据所述错误原因预设对应的所述错误原因处理预案,并将所述错误原因与所述错误 处理预案的对应关系保存在所述错误原因分类器中。9. 根据权利要求7所述的装置,其特征在于,所述装置进一步包括错误原因分类器迭 代训练模块,所述错误原因分类器迭代训练模块用于根据处理预案的反馈结果,重新确定 错误原因类别,并将所述错误日志的错误特征词加入重新确定的错误原因类别的样本集 合,重新训练从而更新所述错误原因分类器。10. 根据权利要求7至9任一项所述的装置,其特征在于,所述错误特征词获取模块进 一步用于, 根据正则表达式对错误日志的文本进行词汇分割,得到若干词汇组成的词汇序列; 对所述词汇序列进行词汇过滤从而获取所述错误特征词,所述错误特征词是能够表示 错误原因的词汇。
【文档编号】G06F17/30GK105893225SQ201510526459
【公开日】2016年8月24日
【申请日】2015年8月25日
【发明人】许鹭清, 陈抒
【申请人】乐视网信息技术(北京)股份有限公司