发明名称 一种分布迭代式数据处理程序异常检测与诊断方法
摘要 本发明涉及一种分布迭代式数据处理程序异常检测与诊断方法,属于计算机数据管理技术领域。该方法包括训练模型和检测诊断两个阶段;首先基于源代码分析进行日志模板库的提取,其次基于模板库从海量日志数据中分别提取数据分块和任务单元对应的特征向量并进行异常检测模型训练,之后结合领域知识进行异常类型标注,然后利用训练好的模型对未来计算任务进行异常检测,并使用可视化界面给出异常分析,最后将特征单元与代码定位信息关联到一起,通过将异常特征单元映射到程序代码中实现程序的异常检测与诊断。本方法能够从多角度检测和诊断出分布迭代式数据处理程序的主要异常,方法直观易用、交互性好,可显著减少用户进行程序异常检测和诊断的时间。
申请公布号 CN105975604A 申请公布日期 2016.09.28
申请号 CN201610312729.1 申请日期 2016.05.12
申请人 清华大学 发明人 王建民;龙明盛;唐亚腾;黄向东
分类号 G06F17/30(2006.01)I;G06F11/07(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 廖元秋
主权项 一种分布迭代式数据处理程序异常检测与诊断方法,其特征在于,该方法包括训练模型和检测诊断两个阶段;其中训练模型阶段具体包括以下步骤:(1)输入作为训练集的日志,并判断日志模板库是否存在,如果日志模板库不存在,则跳至步骤(2)进行日志模板库的构建;如果日志模板库存在,则跳至步骤(3)对日志进行匹配和特征提取;所述日志模板库是由Spark源代码中所有输出日志的代码模板组成;(2)输入Spark源代码建立日志模板库;(3)使用日志模板库对输入的日志进行匹配和特征提取;(4)对获取的训练集中日志的数据分块特征和任务单元特征分别训练K‑means聚类模型,分别得到数据分块K‑means聚类模型M<sub>rdd</sub>和任务单元K‑means聚类模型M<sub>tid</sub>,对所述两个聚类模型均使用专家知识标注聚类模型中属于系统性能异常类别的集合,分别记做数据分块标注集合A<sub>rdd</sub>和任务单元标注集合A<sub>tid</sub>;(5)使用数据分块K‑means聚类模型M<sub>rdd</sub>和任务单元K‑means聚类模型M<sub>tid</sub>分别对训练集提取的两类特征进行类别标注,并使用C4.5决策树算法对已标注的两类特征训练决策树,分别得到基于数据分块的决策树T<sub>rdd</sub>和基于任务单元的决策树T<sub>tid</sub>;(6)将训练得到的数据分块K‑means聚类模型M<sub>rdd</sub>、任务单元K‑means聚类模型M<sub>tid</sub>、数据分块标注集合A<sub>rdd</sub>、任务单元标注集合A<sub>tid</sub>、基于数据分块的决策树T<sub>rdd</sub>和基于任务单元的决策树T<sub>tid</sub>共同组成检测模型,结束模型训练阶段,并将检测模型保存到数据库中;所述检测诊断阶段具体包括以下步骤:(7)获取用户输入的待检查的Spark程序的编号ID,通过Spark的历史服务器判断该程序是否已完成,如果未完成,则等待该程序完成;否则根据程序的编号ID获取该程序的所有日志;(8)从数据库中读取步骤(2)建立的日志模板库;(9)从数据库中读取由训练模型阶段得到的检测模型;(10)使用步骤(3)的方法提取待诊断日志的数据分块特征和任务单元特征,同时提取每个特征对应的阶段Stage信息;(11)对提取的待诊断日志的数据分块特征使用数据分块K‑means聚类模型M<sub>rdd</sub>判断所属类别是否属于数据分块标注集合A<sub>rdd</sub>;对提取的待诊断日志的任务单元特征使用任务单元K‑means聚类模型M<sub>tid</sub>判断所属类别是否属于任务单元标注集合A<sub>tid</sub>;(12)通过历史服务器获取该程序Web UI中各个阶段Stage信息和对应的代码定位信息,然后将数据分块特征和任务单元特征及对应的检测类别、阶段Stage信息、代码定位信息整合到一起,并结合基于数据分块的决策树T<sub>rdd</sub>和基于任务单元的决策树T<sub>tid</sub>给出可视化的诊断结果。
地址 100084 北京市海淀区清华园1号