CN103885834A - 一种分布式环境下的模式匹配处理器 - Google Patents

一种分布式环境下的模式匹配处理器 Download PDF

Info

Publication number
CN103885834A
CN103885834A CN201310433588.5A CN201310433588A CN103885834A CN 103885834 A CN103885834 A CN 103885834A CN 201310433588 A CN201310433588 A CN 201310433588A CN 103885834 A CN103885834 A CN 103885834A
Authority
CN
China
Prior art keywords
map
reduce
pattern
programming model
distributed environment
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
Application number
CN201310433588.5A
Other languages
English (en)
Inventor
牛晓芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Siboke Technology Development Co Ltd
Original Assignee
Tianjin Siboke Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Siboke Technology Development Co Ltd filed Critical Tianjin Siboke Technology Development Co Ltd
Priority to CN201310433588.5A priority Critical patent/CN103885834A/zh
Publication of CN103885834A publication Critical patent/CN103885834A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种分布式环境下的模式匹配处理器,结合分布式计算环境改进WM模式匹配算法,Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境,并且具有更强的可扩展性和可并行性,从而能充分利用和更好的控制集群中的机器相互协作完成模式匹配的任务。对当今大数据时代中过载的信息处理提供了解决方案。

Description

一种分布式环境下的模式匹配处理器
技术领域
本发明涉及模式匹配与云计算领域,利用分布式计算法的技术结合经典的Wu-Manber模式匹配算法进行改进,公开了一种分布式环境下的模式匹配处理器。该处理器充分利用Map-Reduce的特性,将Wu-Manber的预处理过程和匹配过程拆分成Map-Reduce作业,使处理过程并发进行。 
背景技术
模式匹配Pattern matching(也称串匹配String matching)是复杂性理论中研究最广泛的问题之一,它是网络安全、信息检索与过滤、文字处理、数据库查询、音乐检索、计算生物学等重要领域的核心问题,同时也是序列模式挖掘技术的核心与基础。 
模式匹配的算法很多,比较经典的有KMP算法,Shift-And/Shift-Or算法,Boyer-Moore算法以及Wu-Manber算法等,这些算法提出的年代较为久远,在此之后也有很多人提出过针对这些算法的改进。甚至在某些特定的场合通过一定的条件约束或者使用特定的数据结构设计出特定的高效算法,但是数据量的增长已经远远超过这些算法改进所处理的程度。 
Google发表的论文,奠定了云计算技术工业化应用的基础,也成为分布式计算领域的事实标准。本发明也将采用Map-Reduce的编程模型,使Wu-Manber算法适用于分布式计算环境,来处理海量的Internet信息。 
Map-Reduce介绍 
Map-Reduce编程模型的输入是一批具有KEY-VALUE格式的记录,产生的输出也是KEY-VALUE格式的记录集合。Map-Raduce编程模型的用户通过两个函数:Mapper和Reducer来实现整个流程。
Maper由用户实现,根据每一个KEY-VALUE的输入,产生一个KEY-VALUE中间结果。正如其名MAP,这个过程是一对一的映射过程。Map-Reduce的模型会将这一映射的结果以相同的KEY将结果集合排序、分组,然后再将结果传给Reducer。 
Reducer也是由用户实现,接收Mappper产生的结果集合,针对相同的key,将这个key所对应的所有的value按照用户定义的方法归并起来形成一个更小的KEY-VALUE集合。通常每个Reduce调用产生0或者1个输出值。同一个key对应的多个Value值是通过一个迭代器来传递处理。因此即使某个key对应的Value非常多而无法放入内存映射时,也能正确的运行Reducer。 
由于Mapper的输入数据可能在不同的物理机器上,或者可以在任务开始的时候将Mapper的数据分段分发到不同的物理机器上,然后在不同的物理机器上分别执行Mapper,然后统一的对所有Mapper的输出集合进行排序、分组,再将结果集合按照KEY运行一个或者多个Reducer。 
Wu-Manber算法介绍 
Wu-Manber算法采用字符块技术,增大了主串和模式串不匹配的可能性,从而增加了直接跳跃的机会。使用散列表选择模式串集合中的一个子集与当前文本进行完全匹配。使用前缀表进一步过滤不匹配的模式串,使算法获得了较高的运行效率。 
WM算法首先对模式串集合进行预处理。预处理阶段将建立3个表格:SHIFT表,HASH表和PREFIX表。SHIFT表用于在扫描文本串的时候,根据读入字符串决定可以跳过的字符数,如果相应的跳跃值为0,则说明可能产生匹配。HASH表用来存储尾块字符散列值相同的模式串。PREFIX表用于存储尾块字符散列值相同的模式串的首块字符散列值。 
SHIFT表为每个B大小的字符块维护一个key,每个key值对应的value是遇到该字符块匹配时,目标串的当前位置需要移动的距离。 
HASH表的key也是字符块,value是指向一个链表的指针,这个链表中的元素是当SHIFT[key]为0时,后缀为key的模式串。 
PREFIX表的生成与HASH表相对,HASH表中的key为T[m-B+1...m],而PREFIX表中的key为T[1...B]。有PREFIX表,就可以对HASH表项指向的链表做进一步的过滤,即只有前缀和PREFIX的key值相等的链表元素才参与匹配验证。因为在模式集合中既有相同的后缀又有相同前缀的情况会更少。 
算法匹配的大致原理: 
(1) 设当前比较的文本串X的hash值为h。如果SHIFT[h]=0,说明可能产生了匹 配,那么需要进一步的判断。 
(2) 用该h值作为索引,查HASH表找到HASH[h],它存储的是指标,指向两个 单独的表:一个是模式链表,另一个是PREFIX表。模式链表中存放的是后B个字符的hash值同为h的所有模式。 
(3) 对于待比较长度为m的串,如果其长度为B的前缀与模式的前缀的hash值也 相同,则再将相应的文本串与符合的模式逐一进行比较,最终判定是否完全匹配。 
如果T[m-B+1...m]!=P[m-B+1...m],则会将T的当前位置向后移动。如果T[m-B+1...m]没有在匹配模式中出现,则可以放心的移动m-B+1个字符并且继续比较T[2m]所在的字符块和P[m]所在的字符块;如果T[m-B+1...m]在匹配模式中出现了,则找到T[m-B+1...m]在匹配模式中最后出现的位置是s(通过SHIFT表查到),然后将T的当前位置向后移动m-s+1个位置。 
发明内容
本发明公开了一种分布式环境下的模式匹配处理器,结合分布式计算环境改进WM模式匹配算法,使WM算法具有更强的可扩展性和可并行性,从而能充分利用和更好的控制集群中的机器相互协作完成模式匹配的任务。对当今大数据时代中过载的信息处理提供了解决方案。 
本发明是采取以下技术方案实现的:一种分布式环境下的模式匹配处理器,采用的Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境。 
本发明的实现还包括以下的技术方案: 
在预处理阶段,针对每个匹配模式计算出该模式的SHIFT表、HASH表和PREFIX表。多个Mapper可以同时对多个要匹配的模式进行预处理,从而提高了并发性。
在匹配阶段,需要利用两次Map-Reduce来完成。第一次的map-Reduce是可选的,只有当需要匹配的目标串长度很长时才需要运行第一次Map-Reduce。此次map-Reduce主要将较长的目标串分成多段,通过多个段同时进行匹配来提高并发性。 
本发明的优点和有益效果,具体体现在以下几个方面: 
1. 使WM算法具有更强的可扩展性和可并行性,从而能充分利用和更好的控制集群中的机器相互协作完成模式匹配的任务。
2. 利用了分布式存储的优点和Map-Reduce编程模型的特征,完成了模式匹配的并行处理,利用多台计算机的存储能力和计算能力来换取时间效率上的提高。 
3. 对当今大数据时代中过载的信息处理提供了解决方案。 
附图说明
图1是Wu-Manber算法流程; 
图2是Map-Reduce预处理阶段示意图;
图3是Map-Reduce匹配阶段示意图。
具体实施方式
一种分布式环境下的模式匹配处理器,采用的Wu-Manber算法分为预处理阶段和匹配阶段,本发明将针对这两个阶段分别运用Map-Reduce编程模型处理,使Wu-Manber算法适用于分布式环境。 
以下结合说明书附图2对本发明中的Map-Reduce预处理阶段做进一步详述: 
在预处理阶段,针对每个匹配模式计算出该模式的SHIFT表、HASH表和PREFIX表。说明书附图2中多个Mapper可以同时对多个要匹配的模式进行预处理,从而提高了并发性。
Mapper:Mapper的输入格式为101<匹配模式P,NULL>,在Mapper过程中,每个匹配模式会计算SHIFT表、HASH表和PREFIX表,经过计算以后各表的KEY为输出的KEY,但Value中需要加一列表示来区分此列属于SHFIT表、HASH表或是PREFIX表中的内容。Value中另一类为表中对应的KEY的内容。即Mapper的输出格式为102<各个表中的Key,标识为flag,表中的内容Value>。 
Partition:此次处理的partition主要用户根据标识位将每一行Mapper的输出映射到用于处理不同类型表的Reducer。Partition的输入格式是102<各个表中的KEY,标识flag,表中的内容value>,输出格式为103<Key,Value>,但是这些输出会由不同的Reducer函数进行后续的处理。 
Reducer:Reducer函数可以通过不同的参数来处理不同类型的表中的内容,最终将SHIFT表、HASH表和PREFIX表的内容插入到各自应该属于的表中。Reducer的输出仍以分布式文件系统中文件的形式保存,在与目标串进行模式匹配时会将这些结果分发到集群中的机器上。 
以下结合说明书附图3对本发明中的Map-Reduce匹配阶段做进一步详述: 
在匹配阶段,需要利用两次Map-Reduce来完成。
第一次的map-Reduce是可选的,只有当需要匹配的目标串长度很长时才需要运行第一次Map-Reduce。此次map-Reduce主要将较长的目标串分成多段,通过多个段同时进行匹配来提高并发性。 
Mapper:输入格式为<目标串,NULL>,按固定长度Len将目标串分段,每一段作为一个输出,输出格式为<目标串序号,n str(n)>,其中n为段号,表示该记录为目标串的第n段长度为length的字符串,str(n)表示这段字符串的内容。考虑到两段之间可能有匹配的内容,所以需要额外的输出记录第n段的后m-1个字符和第n+1段前m-1个字符组成的字符串。这些记录的输出格式为<目标串序号,n+0.5 str[length-m+2...length]+str[1...m-1]>。n+0.5为段号,str[length-m+2...length]+str[1...m-1]为字段内容。 
Reducer:此次Map-Reduce不需要reducer函数,只需要Mapper排序后的结果直接输出。 
第二次的Map-Reduce是必须的,这也是分布式计算真正发挥作用之处,即处理大规模数据的优势所在。过程如说明书附图3所示。 
Mapper:mapper的输入格式为201<目标串序号,匹配位置(pos),匹配的模式>,Reducer的主要作用是将同一目标串的不同段中匹配出的结果进行聚合,输出格式为202<目标串序号,匹配集合>,其中匹配集合中的每个元素是一个(匹配位置,匹配的模式)对。 
利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。 
  

Claims (9)

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(n)>,其中n为段号,表示该记录为目标串的第n段长度为length的字符串,str(n)表示这段字符串的内容。
8.根据权利要求6所述的Wu-Manber算法运用Map-Reduce编程模型进行匹配,其特征在于:所述第一次的map-Reduce中不需要reducer函数,只需要Mapper排序后的结果直接输出。
9.根据权利要求6所述的Wu-Manber算法运用Map-Reduce编程模型进行匹配,其特征在于:所述第二次的map-Reduce中mapper的输入格式为<目标串序号,匹配位置(pos),匹配的模式>,输出格式为<目标串序号,匹配集合>,其中匹配集合中的每个元素是一个(匹配位置,匹配的模式)对。
CN201310433588.5A 2013-09-22 2013-09-22 一种分布式环境下的模式匹配处理器 Pending CN103885834A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310433588.5A CN103885834A (zh) 2013-09-22 2013-09-22 一种分布式环境下的模式匹配处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310433588.5A CN103885834A (zh) 2013-09-22 2013-09-22 一种分布式环境下的模式匹配处理器

Publications (1)

Publication Number Publication Date
CN103885834A true CN103885834A (zh) 2014-06-25

Family

ID=50954743

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310433588.5A Pending CN103885834A (zh) 2013-09-22 2013-09-22 一种分布式环境下的模式匹配处理器

Country Status (1)

Country Link
CN (1) CN103885834A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301440A (zh) * 2014-11-06 2015-01-21 网易有道信息技术(北京)有限公司 分布式环境中的数据通信方法和设备
CN105337932A (zh) * 2014-06-30 2016-02-17 杭州迪普科技有限公司 一种web应用防护方法及装置
CN110868617A (zh) * 2019-11-27 2020-03-06 烟台职业学院 一种基于分布式系统的同步显示方法
CN117668527A (zh) * 2024-01-31 2024-03-08 国网湖北省电力有限公司信息通信公司 一种大流量模型下的多特征识别方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘杰等: "分布式环境下的模式匹配算法", 《中国科技论文在线》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337932A (zh) * 2014-06-30 2016-02-17 杭州迪普科技有限公司 一种web应用防护方法及装置
CN104301440A (zh) * 2014-11-06 2015-01-21 网易有道信息技术(北京)有限公司 分布式环境中的数据通信方法和设备
CN104301440B (zh) * 2014-11-06 2018-04-10 网易有道信息技术(北京)有限公司 分布式环境中的数据通信方法和设备
CN110868617A (zh) * 2019-11-27 2020-03-06 烟台职业学院 一种基于分布式系统的同步显示方法
CN110868617B (zh) * 2019-11-27 2022-03-22 烟台职业学院 一种基于分布式系统的同步显示方法
CN117668527A (zh) * 2024-01-31 2024-03-08 国网湖北省电力有限公司信息通信公司 一种大流量模型下的多特征识别方法及系统
CN117668527B (zh) * 2024-01-31 2024-04-26 国网湖北省电力有限公司信息通信公司 一种大流量模型下的多特征识别方法及系统

Similar Documents

Publication Publication Date Title
Zhang et al. EAGRE: Towards scalable I/O efficient SPARQL query evaluation on the cloud
Mullesgaard et al. Efficient skyline computation in MapReduce
CN103116625A (zh) 一种基于Hadoop的海量RDF数据分布式查询处理方法
Liang et al. Express supervision system based on NodeJS and MongoDB
JP2010528369A5 (zh)
CN103440246A (zh) 用于MapReduce的中间结果数据排序方法及系统
CN102163226A (zh) 基于映射-化简和分词及邻接排序去重方法
Nabti et al. Querying massive graph data: A compress and search approach
Ma et al. Large-scale schema-free data deduplication approach with adaptive sliding window using mapreduce
CN103885834A (zh) 一种分布式环境下的模式匹配处理器
CN104731925A (zh) 基于MapReduce的FP-Growth的负载均衡并行计算方法
Ghotiya et al. Migration from relational to NoSQL database
CN104834709B (zh) 一种基于负载均衡的并行余弦模式挖掘方法
Hou An improved k-means clustering algorithm based on hadoop platform
Atre et al. BitMat: A Main-memory Bit Matrix of RDF Triples for Conjunctive Triple Pattern Queries.
CN108628907A (zh) 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法
CN106874479A (zh) 基于FPGA的FP‑Growth算法的改进方法及装置
US20200257684A1 (en) Higher-order data sketching for ad-hoc query estimation
Kulkarni et al. Skyline computation for frequent queries in update intensive environment
Balaji et al. Distributed graph path queries using spark
KR101515304B1 (ko) 하둡 기반의 리듀스-사이드 조인 처리 시스템의 리듀스-사이드 조인 질의 처리 방법
Du et al. A novel KNN join algorithms based on Hilbert R-tree in MapReduce
Keswani et al. Enhanced approach to attain competent Big Data pre-processing
Lee et al. Application of filters to multiway joins in MapReduce
Shan et al. A subgraph query method based on adjacent node features on large-scale label graphs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140625

WD01 Invention patent application deemed withdrawn after publication