CN108874952A - 一种基于分布式日志的最大频繁序列模式挖掘方法 - Google Patents
一种基于分布式日志的最大频繁序列模式挖掘方法 Download PDFInfo
- Publication number
- CN108874952A CN108874952A CN201810571573.8A CN201810571573A CN108874952A CN 108874952 A CN108874952 A CN 108874952A CN 201810571573 A CN201810571573 A CN 201810571573A CN 108874952 A CN108874952 A CN 108874952A
- Authority
- CN
- China
- Prior art keywords
- frequent
- sequence
- episodes
- algorithm
- maximal
- 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.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于分布式日志的最大频繁序列模式挖掘方法,基于Spark分布式计算框架,提取局部最大频繁序列;利用前缀投影来划分搜索空间,递归提取出局部最大频繁序列;其中,利用频繁1序列删除日志序列数据集里面非频繁项,降低扫描数据库的规模,同时利用频繁序列模式与最大频繁序列模式之间对应关系减少候选序列数;提取全局最大频繁序列;将局部最大频繁序列按不同长度保存,相邻长度的序列模式进行超集检测,判断是否存在超集关系;如果存在,删除冗余序列,提取出全局最大频繁序列。本发明提出的一种基于分布式日志的最大频繁序列模式挖掘方法,具有更高效率,并支持更大规模事件序列数据的挖掘。
Description
技术领域
本发明涉及一种基于分布式日志的最大频繁序列模式挖掘方法。
背景技术
随着云计算、物联网、大数据等技术的快速发展,分布式服务器系统已成为各种应用业务的主流环境,各类用户访问及服务提供使系统应用的可靠性要求越来越高,对用户日志或系统服务日志信息分析越来越重要。系统中的日志信息呈分布式状态。传统方法是把分布式环境下的日志信息集中到一台计算机上进行分析处理,通过挖掘频繁序列模式,以获得系统运维所需要的各种状态信息,但集中式分析与挖掘方式将消耗巨大的通信开销。同时,出于用户隐私保护和数据的安全性出发,对大规模分布式环境中各类日志数据数据不应该进行异地保存,也不应该占用网络带宽传输到同一地点以进行集中式处理。从以往的文献来看,有效地保证系统的可靠性与安全性,对日志序列分析与挖掘已经呈现出巨大的潜力。如何有效的从大规模分布式日志数据中挖掘出有用的模式,应用于日志序列分析,具有非常重要的意义。
学术界与工业界经常采用序列模式挖掘(Sequential pattern mining,SPM)去发现集群系统日志数据中隐藏的规律。SPM是指海量事件序列中挖掘出重复频率较高的序列模式,其关键是将时间属性或其他具有顺序的属性融入模型之中,是数据挖掘的一个热点研究领域。序列模式挖掘主要应用于日志序列分析、购物篮行为分析、DNA和蛋白质序列分析等。日志序列模式分析是在应用程序中挖掘用户的访问行为,以便预测用户后续可能的访问模式,可以应用于异常检测,如从日志序列数据中挖掘出正常用户行为序列模式,再将用户行为模式与正常模式库进行比较来检测异常。
但是现有的方法应用于分析大规模分布式日志数据集时,已经取得了一定的进展,但依然存在如下三个方面的问题。
问题1:在巨量的分布式日志数据中提取序列模式,目前存在的主要问题是效率非常低下,缺少有效的并行提取序列模式的方法。
问题2:现有的序列模式挖掘算法一般在发现频繁项集阶段需要维护较大候选序列,当支持度阈值较低时,运行时间代价较高,运行效率低。
问题3:现有的序列模式挖掘研究大多是研究挖掘频繁序列模式和频繁闭序列模式的方法,但这些算法在数据量大时都会挖掘出大量的频繁序列。但过多的频繁序列使用户难以理解用户或系统的行为。
发明内容
本发明的目的在于提供一种基于分布式日志的最大频繁序列模式挖掘方法,以克服现有技术中存在的缺陷。
为实现上述目的,本发明的技术方案是:一种基于分布式日志的最大频繁序列模式挖掘方法,按照如下步骤实现:
步骤S1:基于Spark分布式计算框架,提取局部最大频繁序列;利用前缀投影来划分搜索空间,递归提取出局部最大频繁序列;其中,利用频繁1序列删除日志序列数据集里面非频繁项,降低扫描数据库的规模,同时利用频繁序列模式与最大频繁序列模式之间对应关系减少候选序列数;
步骤S2:提取全局最大频繁序列;将局部最大频繁序列按不同长度保存,相邻长度的序列模式进行超集检测,判断是否存在超集关系;如果存在,删除冗余序列,提取出全局最大频繁序列。
在本发明一实施例中,在所述步骤S1中,还包括如下步骤:读取分布式数据集;过滤出频繁1序列;过滤非频繁序列;映射出投影数据库;遍历前缀;从投影数据中找出频繁前缀;构建频繁2序列,并检测是否能够继续递归挖掘。
在本发明一实施例中,在所述过滤非频繁序列过程中,采用基于Spark内存缓存机制缓存原始日志序列数据集。
在本发明一实施例中,在所述构建频繁2序列,并检测是否能够继续递归挖掘过程中,保存递归到最长搜索路径的序列模式,过滤掉候选频繁序列,提取出局部最大频繁序列。
在本发明一实施例中,在所述步骤S2中,还包括如下步骤:遍历局部最大频繁序列;对不同长度频繁序列进行遍历;判断相邻长度是否存在超集关系;若存在,删除冗余序列中的子集频繁序列,提取出全局最大频繁序列。
相较于现有技术,本发明具有以下有益效果:
⑴在算法框架选择上,采用分布式解决方案,通过构建高效率的分布式计算框架实现对大规模事件序列集的最大频繁序列模式挖掘。现有算法一般都是单机模式,很难应用于大规模日志数据集的分析。利用分布式框架特点,对各节点迭代进行挖掘局部最大频繁序列模式,并把运算中间结果输出保存到内存中,以解决大规模数据集的挖掘问题,有利于算法中数据规模的扩展。
⑵在提取局部最大频繁序列阶段,利用频繁序列删除序列数据集里面的非频繁项和向前扩展的一致性检测很好避免局部最大冗余的产生,减少了需要维护候选序列的规模,提高算法运行效率。而一般序列模式挖掘是需要维护大量的候选序列,算法运行效率较低。
⑶在提取全局最大频繁序列阶段,打破了先排序、再检测、后提出全局最大频繁序列模式的传统做法,而是采取先对局部最大频繁序列按长度排序后保存,对相邻长度进行超集检测,后提取出的最大频繁序列可以高效率挖掘出高质量的频繁序列。
附图说明
图1为本发明实施例中日志最大频繁序列挖掘的二阶段框架。
图2为本发明实施例中三个算法在NASA数据集上时间效率。
图3为本发明实施例中三个算法在WorldCup数据集上时间效率。
图4为本发明实施例中两个相同集群环境的分布式算法在随机抽取的10000条NASA日志数据集下时间效率。
图5为本发明实施例中两个相同集群环境的分布式算法在随机抽取的10000条合成数据集下时间效率。
图6为本发明实施例中两个算法在8000条NASA数据集下频繁序列挖掘数量。
图7为本发明实施例中在两个算法在10000条NASA数据集中会话序列下频繁序列挖掘数量。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
高效率进行日志序列分析主要进行三个步骤:日志预处理、日志序列模式发现和日志分析,其中日志序列模式挖掘算法的改进是近期研究的重点方向。目前,学术界已提出大量的序列模式挖掘算法,经过归纳总结,大体上可分为三类:基于Apriori特性的算法、基于垂直格的算法、基于投影数据库的算法,如表1所示。早期的序列模式挖掘算法大都是基于Apriori特性发展而来,它们可以有效地挖掘出频繁模式,但算法需要多次扫描数据库,同时会产生大量的候选序列;对于第二类基于垂直格的算法,例如SPADE等,它主要是对第一类进行了改进,减小了扫描数据库的次数,但该类算法通过把数据库由水平格式转换为垂直格式,需要额外的时间开销,而且算法同样需要维护较大的候选序列;对于第三类基于投影数据库的算法,主要利用了频繁序列投影到相对应的投影数据库上,递归发现频繁序列,这种分治策略缩小了数据集规模同时也减小了候选序列产生。
表1基本序列模式研究的特点
基于序列模式挖掘方法 | 候选序列 | 数据库缩减 | 数据库扫描次数 |
基于Apriori特性的算法 | 多 | 否 | 最长序列模式长度 |
基于垂直格的算法 | 少 | 否 | 最长序列模式长度 |
基于投影数据库的算法 | 没有 | 是 | 2 |
以上三种序列模式挖掘方法在应用于大规模分布式日志进行分析时,一个共同的缺点是会产生大量的冗余挖掘结果,而且效率相对较低。为此,又提出了一些特殊的序列模式挖掘算法,例如:闭频繁序列模式挖掘方法、最大频繁序列模式挖掘算法。
闭频繁序列模式挖掘方法是一种减小频繁序列数量的方法。闭频繁序列模式挖掘时,挖掘的频繁序列不包含于相同频率的父集中。此类算法在挖掘分析日志序列时,它们往往不能很好应用于大规模分布式环境下的日志序列,而且挖掘会挖掘出大量的冗余序列模式。
最大频繁序列挖掘方法是一种基于频繁序列压缩形式的挖掘方法。其中的最大频繁序列关注挖掘特殊的频繁序列,也隐含了一些其他频繁序列的信息,它比频繁闭序列模式压缩程度更大。加拿大麦克墩大学的Fournier-Viger P等人在提出了一种高效率的最大频繁序列模式挖掘算法,但该算法不能很好的应用于大规模分布式日志数据集的情况。为了解决分布式日志数据集序列模式挖掘,中国科学技术大学的邹翔等人提出了快速分布式分布式序列模式挖掘(Fast Distribued Mining ofSequential Pattern,FDMSP)算法挖掘全局序列模式,但算法需要相当大的时间消耗与分配选举站点。在Spark技术体系中的SparkMLib包也提供了FP-Growth和PrefixSpan的分布式实现实现,但FP-Growth序列模式挖掘不能应用于日志序列,而PrefixSpan算法会挖掘出大量冗余的序列,挖掘结果用户难以理解。
进一步的,本发明提出了一种分布式日志最大频繁序列模式挖掘方法,可以有效地克服以上缺点。
进一步的,现有的序列模式挖掘算法在解决大规模日志数据集时,往往存在大量冗余频繁事件序列,使最大频繁序列模式挖掘效率较低,用户对挖掘结果不易理解。因此,现有的序列模式挖掘算法直接应用到大规模分布式日志数据集进行分析挖掘时,是一个非常困难的问题。
传统的序列模式挖掘算法,很难处理大规模日志数据集,算法挖掘效率不高,扩展性较低。因此,利用分布式计算框架是一种趋势,它更适合处理大规模数据集,扩展性较强。近年来,利用分布式计算框架MapReduce是一种趋势,它利用HDFS(分布式文件系统)来存储分布式数据同时利用机器集群来处理大量数据计算。现有技术中利用了分布式计算框架MapReduce重新设计了现有序列模式挖掘算法。其中北京大学的Wang等人提出了PTDS算法,它将事件序列数据划分为较小的数据区域,利用了分布式MapReduce框架结合PrefixSpan算法,很好应用于大规模数据集。但MapReduce处理数据时会把中间结果保存到HDFS,挖掘效率不高。GITAM University的Deng等人指出Spark的弹性分布式数据集RDD虽然有别与MapReduce将分布式计算进行了封装,然而其计算本质仍然包括一些映射(map)和规约(reduce)函数。
进一步的,Spark是新一代基于内存计算的处理平台,计算效率高,具有非常好的并行计算性能,困此,在本实施例中,利用Spark分布式计算框架,实现分布式日志最大频繁序列模式挖掘,期望高效率挖掘出高质量的日志频繁序列。
进一步的,序列模式挖掘算法有一个基本的假设:频繁模式的子模式也是频繁的。依据这个理论,可以挖掘出所有的频繁序列。但算法需要多次扫描序列数据集,产生大量的候选集。随时采集数据的发展,越来越难以满足实际需求。为克服这些缺点,现有技术中还提出了基于投影数据库算法FreeSpan和PrefixSpan算法,采用分治策略,利用投影数据库减小搜索空间,可以较好的进行序列模式的挖掘分析,已有的研究表明,PrefixSpan算法收缩速度比FreeSpan更快。
进一步的,PrefixSpan算法基本思想是使用频繁前缀划分搜索空间,在划分搜索空间时不考虑所有可能出现的频繁子序列,只基于频繁前缀序列构造投影数据库,频繁子序列都可以递归挖掘出来。
在本实施例中,在结合Spark分布式框架解决大规模日志数据集问题时,由于Spark是基于内存计算,当数据量大时,内存中不能构建一个全局的数据集,而PrefixSpan算法分治策略,减小了数据集的规模,可以很好的结合应用于大规模日志数据集研究与分析。算法中应用到了序列、前缀、后缀、频繁序列等概念,给出了如下相关定义。
定义1(事件、事件序列、子序列)。给定事件类型ε={e1,e2,...,en},其中事件就是一个关于时间的二元组合(e,t),其中e∈ε,t表示该事件发生的一个时间。把发生时间按照先后排列定义为在ε上的一个发生的事件序列,ES表示ES={(e1,t1),(e2,t2),...,(es,ts)},ti<ti+1≤tj<tj+1,(i<j<s)。如果两个序列ES″=ES′或者ES″是由ES′删除某些事件后得到的剩余序列,则称ES″是ES′的子序列。
定义2(前缀、后缀、投影,投影数据库)给定情节α=(e1,e2,...,en)和β=(e1′,e2′,...,em′)(m≤n),当ei=ei′(i≤m-1),则β是α的前缀;若序列γ=(em″,em+1,...,en),em″=em-em′,则序列γ为序列α关于前缀β的后缀。若j是β在α中首次出现的结束位置,删除序列α中第1到第j个事件序列后剩余的序列称为β在α上面的投影,找出对事件数据库中所有这种投影,称为投影数据库。
定义3(最大频繁序列)对于s是数据库D频繁序列集合中的一个序列,如果不存在任何序列是s的超集,则称s为一个最大频繁序列。
定义4(向前扩展)情节α=(e1,e2,...,ek)为k序列,e为1序列,则序列(e1,e2,...,eke)称为序列α向前扩展。
进一步的,现有的PrefixSpan序列模式挖掘算法一般在发现频繁项集阶段需要维护较大候选序列,当数据集较低和支持度阈值较低时,运行时间代价较高,运行效率低。PrefixSpan算法是一个高效率的序列模式挖掘算法,但利用该算法挖掘最大频繁序列时,在发现频繁项集阶段同样需要维护较大的候选序列,挖掘效率较低。
因此有必要对PrefixSpan算法进行改造。在本实施中,利用非频繁序列是不会出现在局部和全局最大频繁序列里面这一重要特征,构建一个重要的策略:在生成频繁1序列时,利用频繁1序列删除数据库里面的非频繁序列。据此,可以减小生成投影数据库的规模,降低扫描投影数据集的时间;而且在并行递归挖掘频繁序列,算法会先递归到最长的搜索路径,过滤掉部分候选频繁序列,生成局部最大频繁序列,减小了维护候选序列规模。
进一步的,现有的序列模式挖掘算法在应用于大规模日志数据集时,由于在提取目标序列阶段,会提取出大量冗余的频繁序列模式,而过多的频繁序列使用户难以理解用户或系统的行为和消费大量时间。因此,通过改进提取目标序列方法,可以获得较好的效果。当前,在进行提取目标序列,通常是先对目标序列进行排序,再进行检测,以提取出符合需求的序列模式。但这种方式需要多次遍历,算法的时间效率低。
因此,在本实施例中,进一步进行快速提取全局最大频繁序列模式方法,先对局部最大频繁序列按长度排序后保存,对相邻长度频繁序列进行超集检测,后从中提取出的最大频繁序列,可以高效率挖掘出高质量的频繁序列。
在本实施例中,在对日志数据集进行日志预处理、日志会话生成以后,利用Spark分布式计算框架,在PrefixSpan算法基本思想的基础上,提出了日志序列模式分析的二阶段最大频繁序列挖掘方法。该方法的主要框架如图1所示。
在本实施例中,基于迭代的分布式数据集RDD设计可分为两个阶段:
⑴在各节点并行提取局部最大频繁序列阶段,首先读入事务数据集,即为一个分布式数据集RDD,RDD可以被分为n个数据块;然后分发到m个节点上进行迭代处理,其中以频繁前缀的数量作为2次迭代的增量,在支持度的计算上相互不影响,而判断当前构建的候选序列是否是局部最大频繁模式将会影响到孩子节点;
⑵在提取全局最大频繁序列阶段:从各节点收集挖掘出的局部最大频繁序列,按照不同序列长度进行缓存到内存中。此时,必须对各相邻节点进行超集检测,删除非子集频繁序列,才能获得全局最大频繁序列的集成结果。
在本实施例中,本发明提出的一种基于分布式日志的最大频繁序列模式挖掘方法,包括以下步骤:
⑴提取局部最大频繁序列:利用前缀投影来划分搜索空间,递归提取出局部最大频繁序列,其中利用频繁1序列删除日志序列数据集里面非频繁项,降低了扫描数据库的规模,同时利用频繁序列模式与最大频繁序列模式之间存在特殊性质来减少候选序列数;在本实施例中,频繁1序列为频繁1项集。
⑵提取全局最大频繁序列:首先把局部最大频繁序列按不同长度保存,然后相邻长度进行超集检测,删除冗余序列,提取出全局最大频繁序列。
根据以上描述,在分布式计算框架Spark上实现算法,同时使用Master/Worker工作模式。算法的总体框架描述如下:
Algorithm 1
算法:SparkMFPs
输入:事件数据库(S),最小支持度(θ),频繁序列最大长度(L)
输出:最大频繁序列(MFP)
//第一阶段:提取局部最大频繁序列
Step 1:RDD<-sc.textFile(S,3)//读取分布式数据集
Step 2:Pref=RDD.filter//过滤出频繁1序列
Step 3:freqsequence=RDD.filter(Pref)//过滤掉非频繁序列
Step 4:sequence=freqsequence.map//映射出投影数据库
Step 5:for each p in Pref//遍历前缀
Step 6:findFI(p,project)
Step 7:for each i with a support>=minsup//从投影数据中找出频繁前缀
Step 8:P:=Concat(p,i)//构建频繁2序列
Step 9:if(check(P,p))//检测P是p序列,即是否能够继续递归检测
Step 10:findFI(P,project)
Step 11else:result<-P
//第二阶段:提取全局最大频繁序列,具体见Algorithm2
Step 12:MFP=MaxFI(result)//从局部最大频繁序列提出全局最大频繁序列
在本实施例中,频繁2序列为频繁2项集,但在分布式日志序列模式挖掘中,会话序列是单序列模式,扩展都是序列。在Step9中,p是当前的n项集,而P是向前扩展了一项的n+1项集,是p的父集;后面是指P父集是否存在,存在就继续递归挖掘否则就保存局部最大频繁序列模式。
在本实施例中,记1频繁项集个数为q个,L是最大频繁模式的长度。根据Algorithm1的挖掘过程,其主要时间复杂度来自于递归迭代过程。计算c频繁项集是c-1频繁项集的超集作为最大频繁模式。设c频繁序列的个数为N,Algorithm 2其时间复杂度为O(N*c2),前面提取局部最大频繁序列的时间复杂度为O(q*L),所以总时间复杂度为O(q*L+N*c2)。本算法提前挖掘出局部最大频繁序列减小了冗余,所以c频繁序列的个数N在支持度较低和大规模数据集应用中远小于现有算法挖掘出的频繁序列数,运行效率较高。
进一步的,在算法第一阶段,各节点提取局部最大频繁序列过程中,从HDFS(分布式文件系统)里面读入原始日志数据集,过滤出频繁1序列;然后,利用过滤出的频繁1序列,对原始数据集进行处理,删除非频繁序列,其中利用Spark内存缓存机制缓存原始日志序列数据集。假定支持度阈值0.5,则频繁1序列为a,b,e。删除非频繁序列后数据集,如表2所示。
表2序列数据集
序列号 | 原始序列 | 删除非频繁序列后的序列 |
1 | <a,b,c,d> | <a,b> |
2 | <a,b> | <a,b> |
3 | <e,f,g> | <e> |
4 | <e> | <e> |
在递归构造频繁序列时,保存递归到最长搜索路径的序列模式,过滤掉部分候选频繁序列,提取出局部最大频繁序列<b>、<e>,如表3所示。
表3投影数据库和序列模式
进一步的,算法第二阶段,各节点集成,提取全局最大频繁序列过程中,采用了算法2,算法2描述了从冗余的局部最大序列中提取出最大频繁序列模式。首先对局部最大频繁序列按照不同长度进行保存,然后对相邻序列长度的序列模式进行超集检测,判断是否存在超集关系,如果存在则删除子集频繁序列。算法伪代码描述如下:
Algorithm 2
算法MaxFi
输入:事件数据库(result)
输出:最大频繁序列(MFP)
Step1:Scan result once.Store them with length=1to k inA(1)to
A(k)//遍历局部最大频繁序列
Step 2:for each i in k-1//对不同长度频繁序列进行遍历
Step 3:for each t inA(i).length-1
Step 4:for eachj inA(i+1).length-1
Step 5:if A(t)is the subsequenc of A(j)//判断相邻长度是否存在超集关系
Step 6:result.dele(A(t))//从冗余频繁序列中,删除不符合的频繁序列
Step 7:return result
根据Algorithm 2算法的挖掘过程,其时间复杂度主要来自于超集的检测。假设长度为c的频繁序列为N,频繁序列最大长度为L,则算法时间复杂度为O(L*N2)。
为了让本领域技术人员进一步了解本发明提出的方法,下面结合具体实例进行说明。
采用Scala语言在Ubuntu操作系统上实现了该方法,实验运行环境实验机为联想台式电脑,处理器为Intel Core(i5),CPU为3.30GHz,内存为8GB,开发工具是IntelliJ。集群环境是实验室搭建的Spark平台,使用虚拟机VirtualBox搭建,1个主节点,3个从节点,硬件配置如表4。Hadoop版本2.6.0,Spark版本2.2.0,Java版本是1.8.1。
在本实施例中,数据集描述如下:
⑴NASA数据集
使用NASA数据集可作为Web流量分析日志数据集,也可以作为序列模式挖掘数据集。NASA(National Aeronautics and Space Administration,美国航空航天局)数据集为浏览者访问NASA官方网站的1568898条日志数据;
⑵98年世界杯数据集worldCup
该数据集由全世界范围内的球迷访问世界杯官方网站的约13.5亿条日志访问日志构成;NASA数据集与worldCup数据集同属于Web日志,但是数据量级不同,可以作为实验数据集。
⑶合成数据集
利用IBM合成数据生成器Quest Market-Basket,生成序列数据集。构造了一种有10000个平均长度为20的事件序列,作为合成数据集。
对真实日志数据集预处理,把日志数据集处理为会话序列,进行模式挖掘。
在本实施例中,对运行效率进行检测。
在NASA日志数据集、98世界杯WorldCup日志数据集上进行单机环境运行效率的对比实验,在相同支持度阈值下,如果算法运行时间越小,就说明算法运行效率更高。SparkMFPs算法与当前前沿的PrefixSpan算法和SDD_UDDAG算法。
进一步的,三个算法单机环境,在NASA数据集和worldCup数据集挖掘最大频繁序列,实验结果如图2和图3所示。图中横坐标表示频繁模式挖掘算法的支持度阈值,理论上,支持度阈值越小,表明满足最小支持度的频繁模式越多,会导致算法更加复杂,时间消耗更多;纵坐标表示算法的运行时间。可以看出:随着支持度阈值的增大,SparkMFPs算法的运行时间是减小的,说明SparkMFPs算法符合频繁模式挖掘规律;在相同支持度阈值情况下,SparkMFPs算法所需要的运行时间更短,说明SparkMFPs算法执行时间效率更佳。
进一步的,在NASA日志数据集和IMB合成数据集进行分布式运行环境运行效率的实验,NASA日志数据集随机选取了10000条会话序列。本发明提供的算法与SparkMLib源码包里面分布式PrefixSpan算法对比,PrefixSpan算法需要加上本发明提出的提取全局最大频繁模式方法的时间。
进一步的,实验结果如图4、图5所示。其中横坐标表示支持度阈值,纵坐标表示相同集群实验环境下的时间效率。从实验结果可以看出在相同支持度阈值情况下,SparkMFPs算法所需要的运行时间比SparkMlib里面PrefixSpan算法更短,说明SparkMFPs算法执行运行效率更佳。
在本实施例中,再对算法有效性进行检测。
在最大频繁序列模式挖掘算法中,使用挖掘频繁序列数量来验证算法的有效性,对比算法频繁序列模式挖掘算法PrefixSpan和本发明提供的SparkMFPs算法。
进一步的,表4选择的是从NASA真实日志数据集随机抽取的10000条会话序列,在支持度阈值0.04,下改变最大长度下,两种算法挖掘出的频繁序列数量。
表4最大序列长度与频繁序列数量
图5和图6选择的是NASA真实日志数据集,从中随机抽取8000和10000条会话序列,输入的序列最大长度为20,通过改变支持度阈值,观察算法挖掘数量。
从表4可以看出,确定支持度阈值情况,相同最大序列长度,最大频繁序列模式挖掘算法挖掘出来的频繁序列数量明显低于频繁序列模式挖掘算法。图6和图7说明:随着支持度阈值的减少,挖掘出的频繁序列也在减少;在相同支持度阈值下,本发明提出的SparkMFPs挖掘出的频繁序列数量明显小于PrefixSpan算法挖掘出的频繁序列数量,在应用于大规模数据集时,用户更容易理解。
进一步的,为了提高大规模分布式日志数据集上日志序列分析的效率,本发明提出一种分布式日志最大频繁序列挖掘的SparkMFPs新方法。与现有的研究方法不同,该方法首先利用Spark分布式框架,通过各节点递归并行挖掘局部最大频繁序列模式,其中在构建后缀投影数据库时删除非频繁项,减小了投影数据库规模,同时在递归挖掘时利用向前扩展的一致性检测避免了局部冗余的产生,提高了最大频繁序列模式挖掘的效率;然后,提出了一种对各节点进行结果集成获取全局最大频繁序列的方法,利用相邻长度的频繁序列进行超集检测,高效率提取出所需序列模式;最后,在日志序列数据集上面验证了SparkMFPs算法有效性和执行效率。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (5)
1.一种基于分布式日志的最大频繁序列模式挖掘方法,其特征在于,按照如下步骤实现:
步骤S1:基于Spark分布式计算框架,提取局部最大频繁序列;利用前缀投影来划分搜索空间,递归提取出局部最大频繁序列;其中,利用频繁1序列删除日志序列数据集里面非频繁项,降低扫描数据库的规模,同时利用频繁序列模式与最大频繁序列模式之间对应关系减少候选序列数;
步骤S2:提取全局最大频繁序列;将局部最大频繁序列按不同长度保存,相邻长度的序列模式进行超集检测,判断是否存在超集关系;如果存在,删除冗余序列,提取出全局最大频繁序列。
2.根据权利要求1所述的一种基于分布式日志的最大频繁序列模式挖掘方法,其特征在于,在所述步骤S1中,还包括如下步骤:读取分布式数据集;过滤出频繁1序列;过滤非频繁序列;映射出投影数据库 ;遍历前缀;从投影数据中找出频繁前缀 ;构建频繁2序列,并检测是否能够继续递归挖掘。
3.根据权利要求2所述的一种基于分布式日志的最大频繁序列模式挖掘方法,其特征在于,在所述过滤非频繁序列过程中,采用基于Spark内存缓存机制缓存原始日志序列数据集。
4.根据权利要求1所述的一种基于分布式日志的最大频繁序列模式挖掘方法,其特征在于,在所述构建频繁2序列,并检测是否能够继续递归挖掘过程中,保存递归到最长搜索路径的序列模式,过滤掉候选频繁序列,提取出局部最大频繁序列。
5.根据权利要求1所述的一种基于分布式日志的最大频繁序列模式挖掘方法,其特征在于,在所述步骤S2中,还包括如下步骤:遍历局部最大频繁序列;对不同长度频繁序列进行遍历;判断相邻长度是否存在超集关系;若存在,删除冗余序列中的子集频繁序列,提取出全局最大频繁序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810571573.8A CN108874952B (zh) | 2018-05-31 | 2018-05-31 | 一种基于分布式日志的最大频繁序列模式挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810571573.8A CN108874952B (zh) | 2018-05-31 | 2018-05-31 | 一种基于分布式日志的最大频繁序列模式挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874952A true CN108874952A (zh) | 2018-11-23 |
CN108874952B CN108874952B (zh) | 2021-07-27 |
Family
ID=64336463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810571573.8A Active CN108874952B (zh) | 2018-05-31 | 2018-05-31 | 一种基于分布式日志的最大频繁序列模式挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108874952B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858040A (zh) * | 2019-03-05 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 命名实体识别方法、装置和计算机设备 |
CN110232126A (zh) * | 2019-06-14 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 热点挖掘方法及服务器和计算机可读存储介质 |
CN110275911A (zh) * | 2019-06-24 | 2019-09-24 | 重庆大学 | 基于频繁序列模式的私家车出行热点路径挖掘方法 |
CN110427298A (zh) * | 2019-07-10 | 2019-11-08 | 武汉大学 | 一种分布式日志的自动特征提取方法 |
CN110489652A (zh) * | 2019-08-23 | 2019-11-22 | 重庆邮电大学 | 基于用户行为检测的新闻推荐方法、系统及计算机设备 |
CN111352954A (zh) * | 2020-02-20 | 2020-06-30 | 中国科学院自动化研究所 | 低资源条件下的关联规则挖掘方法、系统、装置 |
CN111459797A (zh) * | 2020-02-27 | 2020-07-28 | 上海交通大学 | 开源社区中开发者行为的异常检测方法、系统及介质 |
CN112882997A (zh) * | 2021-02-19 | 2021-06-01 | 武汉大学 | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 |
CN115209183A (zh) * | 2022-06-22 | 2022-10-18 | 中国科学院信息工程研究所 | 面向加密流量的视频资源与视频播放页面的域名关联方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721427A (zh) * | 2016-01-14 | 2016-06-29 | 湖南大学 | 一种从Web日志中挖掘攻击频繁序列模式的方法 |
CN106021079A (zh) * | 2016-05-06 | 2016-10-12 | 华南理工大学 | 一种基于用户频繁访问序列模型的Web应用性能测试方法 |
US20170255634A1 (en) * | 2016-03-01 | 2017-09-07 | Ching-Tu WANG | Method for Extracting Maximal Repeat Patterns and Computing Frequency Distribution Tables |
-
2018
- 2018-05-31 CN CN201810571573.8A patent/CN108874952B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721427A (zh) * | 2016-01-14 | 2016-06-29 | 湖南大学 | 一种从Web日志中挖掘攻击频繁序列模式的方法 |
US20170255634A1 (en) * | 2016-03-01 | 2017-09-07 | Ching-Tu WANG | Method for Extracting Maximal Repeat Patterns and Computing Frequency Distribution Tables |
CN106021079A (zh) * | 2016-05-06 | 2016-10-12 | 华南理工大学 | 一种基于用户频繁访问序列模型的Web应用性能测试方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858040A (zh) * | 2019-03-05 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 命名实体识别方法、装置和计算机设备 |
CN109858040B (zh) * | 2019-03-05 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 命名实体识别方法、装置和计算机设备 |
CN110232126A (zh) * | 2019-06-14 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 热点挖掘方法及服务器和计算机可读存储介质 |
CN110232126B (zh) * | 2019-06-14 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 热点挖掘方法及服务器和计算机可读存储介质 |
CN110275911B (zh) * | 2019-06-24 | 2023-05-23 | 重庆大学 | 基于频繁序列模式的私家车出行热点路径挖掘方法 |
CN110275911A (zh) * | 2019-06-24 | 2019-09-24 | 重庆大学 | 基于频繁序列模式的私家车出行热点路径挖掘方法 |
CN110427298A (zh) * | 2019-07-10 | 2019-11-08 | 武汉大学 | 一种分布式日志的自动特征提取方法 |
CN110489652A (zh) * | 2019-08-23 | 2019-11-22 | 重庆邮电大学 | 基于用户行为检测的新闻推荐方法、系统及计算机设备 |
CN111352954A (zh) * | 2020-02-20 | 2020-06-30 | 中国科学院自动化研究所 | 低资源条件下的关联规则挖掘方法、系统、装置 |
CN111459797A (zh) * | 2020-02-27 | 2020-07-28 | 上海交通大学 | 开源社区中开发者行为的异常检测方法、系统及介质 |
CN111459797B (zh) * | 2020-02-27 | 2023-04-28 | 上海交通大学 | 开源社区中开发者行为的异常检测方法、系统及介质 |
CN112882997B (zh) * | 2021-02-19 | 2022-06-07 | 武汉大学 | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 |
CN112882997A (zh) * | 2021-02-19 | 2021-06-01 | 武汉大学 | 一种基于N-gram与频繁模式挖掘的系统日志解析方法 |
CN115209183A (zh) * | 2022-06-22 | 2022-10-18 | 中国科学院信息工程研究所 | 面向加密流量的视频资源与视频播放页面的域名关联方法 |
CN115209183B (zh) * | 2022-06-22 | 2024-04-30 | 中国科学院信息工程研究所 | 面向加密流量的视频资源与视频播放页面的域名关联方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108874952B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874952A (zh) | 一种基于分布式日志的最大频繁序列模式挖掘方法 | |
Rathee et al. | R-Apriori: an efficient apriori based algorithm on spark | |
Kyrola | Drunkardmob: billions of random walks on just a pc | |
CN106815307A (zh) | 公共文化知识图谱平台及其使用办法 | |
CN104182527B (zh) | 基于偏序项集的中英文本词间关联规则挖掘方法及其系统 | |
Anitha | A new web usage mining approach for next page access prediction | |
CN115641009B (zh) | 基于专利异构信息网络挖掘竞争者的方法及装置 | |
Jang et al. | {CXL-ANNS}:{Software-Hardware} collaborative memory disaggregation and computation for {Billion-Scale} approximate nearest neighbor search | |
CN107704620B (zh) | 一种档案管理的方法、装置、设备和存储介质 | |
CN106844553A (zh) | 基于样本数据的数据探测和扩充方法及装置 | |
CN113672924B (zh) | 分布式云计算系统的数据入侵检测方法及装置 | |
Mallick et al. | Incremental mining of sequential patterns: Progress and challenges | |
Chen et al. | PBSM: an efficient top-K subgraph matching algorithm | |
Niu et al. | LogTracer: Efficient Anomaly Tracing Combining System Log Detection and Provenance Graph | |
Wang et al. | Dense subgraphs summarization: An efficient way to summarize large scale graphs by super nodes | |
CN115168505A (zh) | 一种用于海洋时空数据的管理系统以及方法 | |
Wang et al. | Tunnel security management based on association rule mining under Hadoop platform | |
Chan et al. | ciForager: Incrementally discovering regions of correlated change in evolving graphs | |
Prashanthi et al. | Generating analytics from web log | |
Chen et al. | Constructing a novel spark-based distributed maximum frequent sequence pattern mining for IoT log | |
Huynh et al. | An approach for incremental mining of clickstream patterns as a service application | |
Kumar et al. | A comparative study of tree-based and apriori-based approaches for incremental data mining | |
Pokhrel et al. | Design of fast and scalable clustering algorithm on spark | |
Pal et al. | Web service enhancement using web pre-fetching by applying Markov model | |
Lingam et al. | A brief account of iterative big data clustering algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |