一种分布式环境下的模式匹配处理器的制造方法

文档序号:6512561阅读:208来源:国知局
一种分布式环境下的模式匹配处理器的制造方法
【专利摘要】本发明公开了一种分布式环境下的模式匹配处理器,结合分布式计算环境改进WM模式匹配算法,Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境,并且具有更强的可扩展性和可并行性,从而能充分利用和更好的控制集群中的机器相互协作完成模式匹配的任务。对当今大数据时代中过载的信息处理提供了解决方案。
【专利说明】—种分布式环境下的模式匹配处理器
【技术领域】
[0001]本发明涉及模式匹配与云计算领域,利用分布式计算法的技术结合经典的Wu-Manber模式匹配算法进行改进,公开了一种分布式环境下的模式匹配处理器。该处理器充分利用Map-Reduce的特性,将Wu-Manber的预处理过程和匹配过程拆分成Map-Reduce作业,使处理过程并发进行。
【背景技术】
[0002]模式匹配Pattern matching (也称串匹配String matching)是复杂性理论中研究最广泛的问题之一,它是网络安全、信息检索与过滤、文字处理、数据库查询、音乐检索、计算生物学等重要领域的核心问题,同时也是序列模式挖掘技术的核心与基础。
[0003]模式匹配的算法很多,比较经典的有KMP算法,Shift-And/Shift-0r算法,Boyer-Moore算法以及Wu-Manber算法等,这些算法提出的年代较为久远,在此之后也有很多人提出过针对这些算法的改进。甚至在某些特定的场合通过一定的条件约束或者使用特定的数据结构设计出特定的高效算法,但是数据量的增长已经远远超过这些算法改进所处理的程度。
[0004]Google发表的论文,奠定了云计算技术工业化应用的基础,也成为分布式计算领域的事实标准。本发明也将采用Map-Reduce的编程模型,使Wu-Manber算法适用于分布式计算环境,来处理海量的Internet信息。
[0005]Map-Reduce 介绍
Map-Reduce编程模型的输入是一批具有KEY-VALUE格式的记录,产生的输出也是KEY-VALUE格式的记录集合。Map-Raduce编程模型的用户通过两个函数:Mapper和Reducer来实现整个流程。
[0006]Maper由用户实现,根据每一个KEY-VALUE的输入,产生一个KEY-VALUE中间结果。正如其名MAP,这个过程是一对一的映射过程。Map-Reduce的模型会将这一映射的结果以相同的KEY将结果集合排序、分组,然后再将结果传给Reducer。
[0007]Reducer也是由用户实现,接收Mappper产生的结果集合,针对相同的key,将这个key所对应的所有的value按照用户定义的方法归并起来形成一个更小的KEY-VALUE集合。通常每个Reduce调用产生O或者I个输出值。同一个key对应的多个Value值是通过一个迭代器来传递处理。因此即使某个key对应的Value非常多而无法放入内存映射时,也能正确的运行Reducer。
[0008]由于Mapper的输入数据可能在不同的物理机器上,或者可以在任务开始的时候将Mapper的数据分段分发到不同的物理机器上,然后在不同的物理机器上分别执行Mapper,然后统一的对所有Mapper的输出集合进行排序、分组,再将结果集合按照KEY运行一个或者多个Reducer。
[0009]Wu-Manber 算法介绍
Wu-Manber算法采用字符块技术,增大了主串和模式串不匹配的可能性,从而增加了直接跳跃的机会。使用散列表选择模式串集合中的一个子集与当前文本进行完全匹配。使用前缀表进一步过滤不匹配的模式串,使算法获得了较高的运行效率。
[0010]丽算法首先对模式串集合进行预处理。预处理阶段将建立3个表格=SHIFT表,HASH表和PREFIX表。SHIFT表用于在扫描文本串的时候,根据读入字符串决定可以跳过的字符数,如果相应的跳跃值为0,则说明可能产生匹配。HASH表用来存储尾块字符散列值相同的模式串。PREFIX表用于存储尾块字符散列值相同的模式串的首块字符散列值。
[0011]SHIFT表为每个B大小的字符块维护一个key,每个key值对应的value是遇到该字符块匹配时,目标串的当前位置需要移动的距离。
[0012]HASH表的key也是字符块,value是指向一个链表的指针,这个链表中的元素是当SHIFT [key]为O时,后缀为key的模式串。
[0013]PREFIX 表的生成与 HASH 表相对,HASH 表中的 key 为 T而 PREFIX 表中的key为T [1...B]。有PREFIX表,就可以对HASH表项指向的链表做进一步的过滤,即只有前缀和PREFIX的key值相等的链表元素才参与匹配验证。因为在模式集合中既有相同的后缀又有相同前缀的情况会更少。
[0014]算法匹配的大致原理:
(I)设当前比较的文本串X的hash值为h。如果SHIFT [h]=0,说明可能产生了匹配,那么需要进一步的判断。
[0015](2)用该h值作为索引,查HASH表找到HASH[h],它存储的是指标,指向两个单独的表:一个是模式链表,另一个是PREFIX表。模式链表中存放的是后B个字符的hash值同为h的所有模式。
[0016](3)对于待比较长度为m的串,如果其长度为B的前缀与模式的前缀的hash值也相同,则再将相应的文本串与符合的模式逐一进行比较,最终判定是否完全匹配。
[0017]如果T[m-B+1...m]!=p[m-B+1...m],则会将T的当前位置向后移动。如果T[m-B+1...m]没有在匹配模式中出现,则可以放心的移动m_B+l个字符并且继续比较T[2m]所在的字符块和P[m]所在的字符块;如果T[m_B+l...m]在匹配模式中出现了,则找到T[m-B+1...m]在匹配模式中最后出现的位置是s (通过SHIFT表查到),然后将T的当前位置向后移动m-s+1个位置。

【发明内容】

[0018]本发明公开了一种分布式环境下的模式匹配处理器,结合分布式计算环境改进WM模式匹配算法,使WM算法具有更强的可扩展性和可并行性,从而能充分利用和更好的控制集群中的机器相互协作完成模式匹配的任务。对当今大数据时代中过载的信息处理提供了解决方案。
[0019]本发明是采取以下技术方案实现的:一种分布式环境下的模式匹配处理器,采用的Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境。
[0020]本发明的实现还包括以下的技术方案:
在预处理阶段,针对每个匹配模式计算出该模式的SHIFT表、HASH表和PREFIX表。多个Mapper可以同时对多个要匹配的模式进行预处理,从而提高了并发性。[0021]在匹配阶段,需要利用两次Map-Reduce来完成。第一次的map-Reduce是可选的,只有当需要匹配的目标串长度很长时才需要运行第一次Map-Reduce。此次map-Reduce主要将较长的目标串分成多段,通过多个段同时进行匹配来提高并发性。
[0022]本发明的优点和有益效果,具体体现在以下几个方面:
1.使WM算法具有更强的可扩展性和可并行性,从而能充分利用和更好的控制集群中的机器相互协作完成模式匹配的任务。
[0023]2.利用了分布式存储的优点和Map-Reduce编程模型的特征,完成了模式匹配的并行处理,利用多台计算机的存储能力和计算能力来换取时间效率上的提高。
[0024]3.对当今大数据时代中过载的信息处理提供了解决方案。
【专利附图】

【附图说明】
[0025]图1是Wu-Manber算法流程;
图2是Map-Reduce预处理阶段示意图;
图3是Map-Reduce匹配阶段示意图。
【具体实施方式】
[0026]一种分布式环境下的模式匹配处理器,采用的Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境。
[0027]以下结合说明书附图2对本发明中的Map-Reduce预处理阶段做进一步详述:
在预处理阶段,针对每个匹配模式计算出该模式的SHIFT表、HASH表和PREFIX表。说明书附图2中多个Mapper可以同时对多个要匹配的模式进行预处理,从而提高了并发性。
[0028]Mapper:Mapper的输入格式为101〈匹配模式P, NULL〉,在Mapper过程中,每个匹配模式会计算SHIFT表、HASH表和PREFIX表,经过计算以后各表的KEY为输出的KEY,但Value中需要加一列表示来区分此列属于SHFIT表、HASH表或是PREFIX表中的内容。Value中另一类为表中对应的KEY的内容。即Mapper的输出格式为102〈各个表中的Key,标识为flag,表中的内容Value〉。
[0029]Partition:此次处理的partition主要用户根据标识位将每一行Mapper的输出映射到用于处理不同类型表的Reducer。Partition的输入格式是102〈各个表中的KEY,标识flag,表中的内容value〉,输出格式为103〈Key,Value〉,但是这些输出会由不同的Reducer函数进行后续的处理。
[0030]Reducer:Reducer函数可以通过不同的参数来处理不同类型的表中的内容,最终将SHIFT表、HASH表和PREFIX表的内容插入到各自应该属于的表中。Reducer的输出仍以分布式文件系统中文件的形式保存,在与目标串进行模式匹配时会将这些结果分发到集群中的机器上。
[0031]以下结合说明书附图3对本发明中的Map-Reduce匹配阶段做进一步详述: 在匹配阶段,需要利用两次Map-Reduce来完成。
[0032]第一次的map-Reduce是可选的,只有当需要匹配的目标串长度很长时才需要运行第一次Map-Reduce。此次map-Reduce主要将较长的目标串分成多段,通过多个段同时进行匹配来提高并发性。
[0033]Mapper:输入格式为〈目标串,NULL〉,按固定长度Len将目标串分段,每一段作为一个输出,输出格式为〈目标串序号,n str (η)>,其中η为段号,表不该记录为目标串的第η段长度为length的字符串,str (η)表示这段字符串的内容。考虑到两段之间可能有匹配的内容,所以需要额外的输出记录第η段的后m-1个字符和第n+1段前m_l个字符组成的字符串。这些记录的输出格式为 < 目标串序号,n+0.5 str [length-m+2...length]+str [I?..m_l]>。n+0.5 为段号,str [length-m+2...length] +str [1...m-1]为字段内容。
[0034]Reducer:此次Map-Reduce不需要reducer函数,只需要Mapper排序后的结果直接输出。
[0035]第二次的Map-Reduce是必须的,这也是分布式计算真正发挥作用之处,即处理大规模数据的优势所在。过程如说明书附图3所示。
[0036]Mapper:mapper的输入格式为201〈目标串序号,匹配位置(pos),匹配的模式>,Reducer的主要作用是将同一目标串的不同段中匹配出的结果进行聚合,输出格式为202〈目标串序号,匹配集合〉,其中匹配集合中的每个元素是一个(匹配位置,匹配的模式)对。
[0037]利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述`技术效果的,均是落入本发明的保护范围。
【权利要求】
1.一种分布式环境下的模式匹配处理器,其特征在于:采用的Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境。
2.根据权利要求1所述的一种分布式环境下的模式匹配处理器,其特征在于:所述Wu-Manber算法运用Map-Reduce编程模型进行预处理,多个Mapper可以同时对多个要匹配的模式进行预处理。
3.根据权利要求1所述的一种分布式环境下的模式匹配处理器,其特征在于:所述Wu-Manber算法运用Map-Reduce编程模型进行预处理,Mapper的输入格式为〈匹配模式P,NULL〉,Mapper的输出格式为〈各个表中的Key,标识为flag,表中的内容Value〉。
4.根据权利要求1所述的一种分布式环境下的模式匹配处理器,其特征在于:所述Wu-Manber算法运用Map-Reduce编程模型进行预处理,Partition的输入格式是〈各个表中的KEY,标识flag,表中的内容value〉,输出格式为〈Key, Value〉。
5.根据权利要求1所述的一种分布式环境下的模式匹配处理器,其特征在于:所述Wu-Manber算法运用Map-Reduce编程模型进行预处理Reducer函数可以通过不同的参数来处理不同类型的表中的内容,最终将SHIFT表、HASH表和PREFIX表的内容插入到各自应该属于的表中,Reducer的输出仍以分布式文件系统中文件的形式保存,在与目标串进行模式匹配时会将这些结果分发到集群中的机器上。
6.根据权利要求1所述的一种分布式环境下的模式匹配处理器,其特征在于:所述Wu-Manber算法运用Map-Reduce编程模型进行匹配,需要利用两次Map-Reduce来完成,第一次的map-Reduce是可选的,第二次的Map-Reduce是必须的。
7.根据权利要求6所述的Wu-Manber算法运用Map-Reduce编程模型进行匹配,其特征在于:所述第一次的map-Reduce中Mapper的输入格式为〈目标串,NULL〉,按固定长度Len将目标串分段,每一段作为一个输出,输出格式为〈目标串序号,n str (η) >,其中η为段号,表示该记录为目标串的第η段长度为length的字符串,str (η)表示这段字符串的内容。
8.根据权利要求6所述的Wu-Manber算法运用Map-Reduce编程模型进行匹配,其特征在于:所述第一次的map-Reduce中不需要reducer函数,只需要Mapper排序后的结果直接输出。
9.根据权利要求6所述的Wu-Manber算法运用Map-Reduce编程模型进行匹配,其特征在于:所述第二次的map-Reduce中mapper的输入格式为〈目标串序号,匹配位置(pos),匹配的模式〉,输出格式为〈目标串序号,匹配集合〉,其中匹配集合中的每个元素是一个(匹配位置,匹配的模式)对。
【文档编号】G06F9/50GK103885834SQ201310433588
【公开日】2014年6月25日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】牛晓芳 申请人:天津思博科科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1