CN106227790A - 一种使用Apache Spark分类与解析海量日志的方法 - Google Patents
一种使用Apache Spark分类与解析海量日志的方法 Download PDFInfo
- Publication number
- CN106227790A CN106227790A CN201610573035.3A CN201610573035A CN106227790A CN 106227790 A CN106227790 A CN 106227790A CN 201610573035 A CN201610573035 A CN 201610573035A CN 106227790 A CN106227790 A CN 106227790A
- Authority
- CN
- China
- Prior art keywords
- journal file
- daily record
- data
- classification
- parsing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种使用Apache Spark分类与解析海量日志的方法。方法包括利用日志数据接口,选取日志文件并将日志文件导入Apache Spark环境中;对日志文件的文件名和说明字段进行词条解析,并读取关键字段;根据决策树分类器,对关键字段进行分类,并形成日志文件的分类信息;根据Hive表结构,基于Scala从日志文件中匹配所需信息形成数据条并将数据条导入Hive表中;从Hive表中读取数据并统计状态信息;分析状态发生的频率、幅度,并形成最终数据状态报告。本发明具有实施简单、更快的解析速度、以及更高的解析准确性等优点。
Description
技术领域
本发明涉及信息技术领域,并且更具体地涉及一种使用Apache Spark分类与解析海量日志的方法。
背景技术
随着信息技术的飞速发展,为了记录应用和系统的工作情况,就必须生成大量的工作日志。这些日志数据中不仅包含了应用和系统的状态还包含了错误信息。通过采集和分析日志数据,将有用的状态和错误信息挖掘出来,就能让系统管理人员及时准确的获知应用和系统的运行情况。
应用和系统频繁地生成日志文件,因此这些日志文件的数量相当庞大。目前,对日志文件的常见解析方法是用MR分析日志文件数据,但是MR有很多缺陷:抽象层次低,需要手工编写代码来完成,使用上难以上手;只提供两个操作,Map和Reduce,表达力欠缺;处理逻辑隐藏在代码细节中,没有整体逻辑;中间结果也放在HDFS文件系统中;ReduceTask需要等待所有MapTask都完成后才可以开始;时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够;对于迭代式数据处理性能比较差;不适合描述复杂的数据处理过程。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于提供一种使用Apache Spark分类与解析海量日志的方法。其以Apache Spark计算框架为基础,利用Scala特有的模式匹配对海量日志文件进行分类,然后利用关键字段解析并提取日志文件中出现的有用信息。
为了实现上述目的,本发明采用的技术方案如下:
一种使用Apache Spark分类与解析海量日志的方法,其包括以下步骤:
步骤1:利用日志数据接口,选取一段分析时间内的日志文件并将日志文件导入Apache Spark环境中;
步骤2:基于Scala的模式匹配命令对日志文件的文件名和日志文件的说明字段进行词条解析,并读取关键字段;
步骤3:根据决策树分类器,对关键字段进行分类,并形成日志文件的分类信息;
步骤4:根据Hive表结构,基于Scala从日志文件中匹配所需信息形成数据条并将数据条导入Hive表中;
步骤5:从Hive表中读取数据并统计状态信息;
步骤6:分析状态发生的频率、幅度,并形成最终数据状态报告。
进一步地,上述关键字段包括主机名、路径、日志类型。
进一步地,上述日志文件的类型包括Warning日志、Error日志、Critical日志。
进一步地,上述数据条包括日志类型、应用类型、日志级别关键字、日志级别、日志内容。
进一步地,上述状态包括异常状态、错误状态。
进一步地,上述数据状态报告包括异常次数、异常频率、异常种类和相互关系、错误次数、错误频率。
与传统的单机日志解析或者Hadoop框架下的MR日志解析相比,本发明的实施简单、易行,解析日志文件流程可分布式计算,大大地提高了集群使用效率和日志解析速度。同时,本发明引入日志分类器(即决策树分类器),实现了先分类后入库的稳定、准确的解析方案,有效地提高了最终的解析准确性。进一步地,本发明表述了不同场景下不同分类的发生比率、幅度等信息,能够更好地指导后续的工作。
附图说明
图1为本发明的一种使用Apache Spark分类与解析海量日志的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1示出了本发明的一种使用Apache Spark分类与解析海量日志的方法的流程图。首先,获取重要的运行参数,包括运行时间、运行分布式节点数目、日志运行总量等参数,其中,所述分布式节点数目(用sumcount表示)需要经过一段时间的学习确认,以达到最优值。其次,将日志文件导入Spark环境,选取节点数文件,将其中一个日志文件读入决策树分类器,并基于Scala的模式匹配命令对日志文件的文件名和日志文件的说明字段进行词条解析,读取其中的关键字段,包括主机名、路径、以及日志类型。再次,根据已有的词库和预构建的决策树分类器,将读取的关键字段与上述词库进行对照分类,形成上述日志文件的类型信息,包括Warning日志、Error日志、以及Critical日志。接着,成功获取日志文件的类型信息后,根据每个类型的Hive表结构,基于Scala从日志文件内容中匹配需要的信息,形成数据条(包括日志类型、应用类型、日志级别关键字、日志级别、日志内容等)并将数据条导入每个类型的日志文件的Hive表中。接着,当提交一个节点数据后,判断当前的集群节点(用numcount表示)是否被用尽,如果没有则读入新的日志文件到决策树分类器,并提交未使用节点计算对应的入库词条;如果集群节点被用尽则等待节点计算完毕并释放存储空间后,判断所有的日志文件是否分类解析完成,如果所有的日志文件已完成分类解析,则退出分类解析循环,如果所有的日志文件未全部完成分类解析,则读取下一个日志文件至决策树分类器,直到所有的日志文件完成分类解析。最后,对于不同类型的日志文件,从各自的Hive表中读取数据,统计包括异常状态、错误状态等状态信息,分析上述状态发生的频率、幅度。
其中,各种状态发生的频率通过下式各状态的乘积系数来表示:
上式中,Lij表示第i种分类类型的系数Xi与第j种分类类型的系统Yj的相交系数,∝值通过事先设置阈值或者学习得到。
其中,各种状态发生的幅度通过下式各状态的综合系数来表示:
上式中,confi表示第i种分类类型在其他分类条件下发生幅度的累计和。
最后,根据上述计算结果形成数据状态的报告,该数据状态报告主要提供的基本信息包括异常次数、异常频率、异常种类和相互关系、错误次数、错误频率等。
根据本发明实施例的一方面,决策树分类器是根据具体的需求和前一段时间已经获得的日志文件预先构建的,且不做线上的动态调整。当需求发生变化或者分类准确程度降至某一标准线以下时,将通过人工离线学习来对决策树分类器进行离线调整。
根据本发明实施例的另一方面,上述数据状态报告需要根据上述状态发生的频率和幅度来得到。举例来说,在计算异常状态的自身或相互相关程度系数时,异常发生的频率和幅度通过计算公式(1)和(2)获得,(异常,异常)的自相关程度系数具体计算流程如下:
异常具体可包括系统异常、读异常、写异常等。其中(Xi,Yj)组合表示异常i到异常j发生的幅度和频率,由于存在前后关系,所以Xi存在正负性,Yj必定大于等于0。
Lij表示(Xi,Yj)组合的系数,通过式(1)可知,当Xi或Yj任意为0时,Lij=∝;当Xi*Yj>0时,Lij=1;当Xi*Yj<0时,Lij=-1。因此保证了Lij*Xi*Yj>=0,当且仅当X和Y完全无关时,Lij*Xi*Yj=0。
通过式(2),可以计算得到异常自身的关系程度系统conf。类似地,可以计算得到(异常,错误)、(错误,错误)等之间的相关程度系数。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种使用Apache Spark分类与解析海量日志的方法,其特征在于,所述方法包括以下步骤:
步骤1:利用日志数据接口,选取一段分析时间内的日志文件并将所述日志文件导入Apache Spark环境中;
步骤2:基于Scala的模式匹配命令对所述日志文件的文件名和所述日志文件的说明字段进行词条解析,并读取关键字段;
步骤3:根据决策树分类器,对所述关键字段进行分类,并形成所述日志文件的分类信息;
步骤4:根据Hive表结构,基于Scala从所述日志文件中匹配所需信息形成数据条并将所述数据条导入所述Hive表中;
步骤5:从所述Hive表中读取数据并统计状态信息;
步骤6:分析所述状态发生的频率、幅度,并形成最终数据状态报告。
2.根据权利要求1所述的方法,其特征在于,所述关键字段包括主机名、路径、日志类型。
3.根据权利要求1所述的方法,其特征在于,所述日志文件的类型包括warning日志、error日志、critical日志。
4.根据权利要求1所述的方法,其特征在于,所述数据条包括日志类型、应用类型、日志级别关键字、日志级别、日志内容。
5.根据权利要求1所述的方法,其特征在于,所述状态包括异常状态、错误状态。
6.根据权利要求1所述的方法,其特征在于,所述数据状态报告包括异常次数、异常频率、异常种类和相互关系、错误次数、错误频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610573035.3A CN106227790A (zh) | 2016-07-19 | 2016-07-19 | 一种使用Apache Spark分类与解析海量日志的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610573035.3A CN106227790A (zh) | 2016-07-19 | 2016-07-19 | 一种使用Apache Spark分类与解析海量日志的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106227790A true CN106227790A (zh) | 2016-12-14 |
Family
ID=57531637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610573035.3A Pending CN106227790A (zh) | 2016-07-19 | 2016-07-19 | 一种使用Apache Spark分类与解析海量日志的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227790A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256158A (zh) * | 2017-06-07 | 2017-10-17 | 广州供电局有限公司 | 电力系统负荷削减量的检测方法和系统 |
CN108881352A (zh) * | 2017-05-15 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 一种处理点击日志的方法、装置和系统 |
CN109408640A (zh) * | 2018-11-02 | 2019-03-01 | 东软集团股份有限公司 | 日志分类方法、装置及存储介质 |
CN110019074A (zh) * | 2017-12-30 | 2019-07-16 | 中国移动通信集团河北有限公司 | 访问路径的分析方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150207706A1 (en) * | 2014-01-22 | 2015-07-23 | Telefonaktiebolaget L M Ericsson (Publ) | Method for scalable distributed network traffic analytics in telco |
CN105159964A (zh) * | 2015-08-24 | 2015-12-16 | 广东欧珀移动通信有限公司 | 一种日志监控方法及系统 |
CN105589940A (zh) * | 2015-12-16 | 2016-05-18 | 南京联成科技发展有限公司 | 一种基于非结构化实时数据库的安全管理运维服务平台 |
-
2016
- 2016-07-19 CN CN201610573035.3A patent/CN106227790A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150207706A1 (en) * | 2014-01-22 | 2015-07-23 | Telefonaktiebolaget L M Ericsson (Publ) | Method for scalable distributed network traffic analytics in telco |
CN105159964A (zh) * | 2015-08-24 | 2015-12-16 | 广东欧珀移动通信有限公司 | 一种日志监控方法及系统 |
CN105589940A (zh) * | 2015-12-16 | 2016-05-18 | 南京联成科技发展有限公司 | 一种基于非结构化实时数据库的安全管理运维服务平台 |
Non-Patent Citations (3)
Title |
---|
刘凯: ""基于日志特征的异常检测系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
张彬: ""基于Spark大数据平台日志审计系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
马家奇: "《重大传染病研究 信息化技术平台集成开发与应用》", 30 June 2012, 北京理工大学出版社 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881352A (zh) * | 2017-05-15 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 一种处理点击日志的方法、装置和系统 |
CN107256158A (zh) * | 2017-06-07 | 2017-10-17 | 广州供电局有限公司 | 电力系统负荷削减量的检测方法和系统 |
CN107256158B (zh) * | 2017-06-07 | 2021-06-18 | 广州供电局有限公司 | 电力系统负荷削减量的检测方法和系统 |
CN110019074A (zh) * | 2017-12-30 | 2019-07-16 | 中国移动通信集团河北有限公司 | 访问路径的分析方法、装置、设备及介质 |
CN110019074B (zh) * | 2017-12-30 | 2021-03-23 | 中国移动通信集团河北有限公司 | 访问路径的分析方法、装置、设备及介质 |
CN109408640A (zh) * | 2018-11-02 | 2019-03-01 | 东软集团股份有限公司 | 日志分类方法、装置及存储介质 |
CN109408640B (zh) * | 2018-11-02 | 2021-04-20 | 东软集团股份有限公司 | 日志分类方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10417072B2 (en) | Scalable predictive early warning system for data backup event log | |
CN113094200B (zh) | 一种应用程序的故障预测方法和装置 | |
CN108427720B (zh) | 系统日志分类方法 | |
US20210035022A1 (en) | Method for updating service system electronic device, and readable storage medium | |
CA3042926A1 (en) | Technology incident management platform | |
CN110968695A (zh) | 基于弱监督技术主动学习的智能标注方法、装置及平台 | |
CN106570513A (zh) | 大数据网络系统的故障诊断方法和装置 | |
CN104504150A (zh) | 新闻舆情监测系统 | |
CN106227790A (zh) | 一种使用Apache Spark分类与解析海量日志的方法 | |
CN116541911B (zh) | 一种基于人工智能的包装设计系统 | |
CN108416034B (zh) | 基于金融异构大数据的信息采集系统及其控制方法 | |
CN110990529B (zh) | 企业的行业明细划分方法及系统 | |
US20150149541A1 (en) | Leveraging Social Media to Assist in Troubleshooting | |
Jing et al. | Software defect prediction based on collaborative representation classification | |
CN114296975A (zh) | 一种分布式系统调用链和日志融合异常检测方法 | |
CN114329455B (zh) | 基于异构图嵌入的用户异常行为检测方法及装置 | |
CN115865483A (zh) | 一种基于机器学习的异常行为分析方法和装置 | |
CN116795977A (zh) | 数据处理方法、装置、设备和计算机可读存储介质 | |
AU2020200629A1 (en) | Method and system for reducing incident alerts | |
CN112882899B (zh) | 一种日志异常检测方法及装置 | |
CN116522912B (zh) | 一种包装设计语言模型的训练方法、装置、介质及设备 | |
CN114969334B (zh) | 异常日志检测方法、装置、电子设备及可读存储介质 | |
US12001423B2 (en) | Method and electronic device for obtaining hierarchical data structure and processing log entries | |
Li et al. | Glad: Content-aware dynamic graphs for log anomaly detection | |
CN105653649B (zh) | 海量文本中低占比信息识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161214 |
|
RJ01 | Rejection of invention patent application after publication |