国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種分布式環(huán)境下的模式匹配處理器的制造方法

      文檔序號(hào):6512561閱讀:260來(lái)源:國(guó)知局
      一種分布式環(huán)境下的模式匹配處理器的制造方法
      【專利摘要】本發(fā)明公開(kāi)了一種分布式環(huán)境下的模式匹配處理器,結(jié)合分布式計(jì)算環(huán)境改進(jìn)WM模式匹配算法,Wu-Manber算法分為預(yù)處理階段和匹配階段,本發(fā)明將針對(duì)這兩個(gè)階段分別運(yùn)用Map-Reduce編程模型處理,使Wu-Manber算法適用于分布式環(huán)境,并且具有更強(qiáng)的可擴(kuò)展性和可并行性,從而能充分利用和更好的控制集群中的機(jī)器相互協(xié)作完成模式匹配的任務(wù)。對(duì)當(dāng)今大數(shù)據(jù)時(shí)代中過(guò)載的信息處理提供了解決方案。
      【專利說(shuō)明】—種分布式環(huán)境下的模式匹配處理器
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及模式匹配與云計(jì)算領(lǐng)域,利用分布式計(jì)算法的技術(shù)結(jié)合經(jīng)典的Wu-Manber模式匹配算法進(jìn)行改進(jìn),公開(kāi)了一種分布式環(huán)境下的模式匹配處理器。該處理器充分利用Map-Reduce的特性,將Wu-Manber的預(yù)處理過(guò)程和匹配過(guò)程拆分成Map-Reduce作業(yè),使處理過(guò)程并發(fā)進(jìn)行。
      【背景技術(shù)】
      [0002]模式匹配Pattern matching (也稱串匹配String matching)是復(fù)雜性理論中研究最廣泛的問(wèn)題之一,它是網(wǎng)絡(luò)安全、信息檢索與過(guò)濾、文字處理、數(shù)據(jù)庫(kù)查詢、音樂(lè)檢索、計(jì)算生物學(xué)等重要領(lǐng)域的核心問(wèn)題,同時(shí)也是序列模式挖掘技術(shù)的核心與基礎(chǔ)。
      [0003]模式匹配的算法很多,比較經(jīng)典的有KMP算法,Shift-And/Shift-0r算法,Boyer-Moore算法以及Wu-Manber算法等,這些算法提出的年代較為久遠(yuǎn),在此之后也有很多人提出過(guò)針對(duì)這些算法的改進(jìn)。甚至在某些特定的場(chǎng)合通過(guò)一定的條件約束或者使用特定的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)出特定的高效算法,但是數(shù)據(jù)量的增長(zhǎng)已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)這些算法改進(jìn)所處理的程度。
      [0004]Google發(fā)表的論文,奠定了云計(jì)算技術(shù)工業(yè)化應(yīng)用的基礎(chǔ),也成為分布式計(jì)算領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。本發(fā)明也將采用Map-Reduce的編程模型,使Wu-Manber算法適用于分布式計(jì)算環(huán)境,來(lái)處理海量的Internet信息。
      [0005]Map-Reduce 介紹
      Map-Reduce編程模型的輸入是一批具有KEY-VALUE格式的記錄,產(chǎn)生的輸出也是KEY-VALUE格式的記錄集合。Map-Raduce編程模型的用戶通過(guò)兩個(gè)函數(shù):Mapper和Reducer來(lái)實(shí)現(xiàn)整個(gè)流程。
      [0006]Maper由用戶實(shí)現(xiàn),根據(jù)每一個(gè)KEY-VALUE的輸入,產(chǎn)生一個(gè)KEY-VALUE中間結(jié)果。正如其名MAP,這個(gè)過(guò)程是一對(duì)一的映射過(guò)程。Map-Reduce的模型會(huì)將這一映射的結(jié)果以相同的KEY將結(jié)果集合排序、分組,然后再將結(jié)果傳給Reducer。
      [0007]Reducer也是由用戶實(shí)現(xiàn),接收Mappper產(chǎn)生的結(jié)果集合,針對(duì)相同的key,將這個(gè)key所對(duì)應(yīng)的所有的value按照用戶定義的方法歸并起來(lái)形成一個(gè)更小的KEY-VALUE集合。通常每個(gè)Reduce調(diào)用產(chǎn)生O或者I個(gè)輸出值。同一個(gè)key對(duì)應(yīng)的多個(gè)Value值是通過(guò)一個(gè)迭代器來(lái)傳遞處理。因此即使某個(gè)key對(duì)應(yīng)的Value非常多而無(wú)法放入內(nèi)存映射時(shí),也能正確的運(yùn)行Reducer。
      [0008]由于Mapper的輸入數(shù)據(jù)可能在不同的物理機(jī)器上,或者可以在任務(wù)開(kāi)始的時(shí)候?qū)apper的數(shù)據(jù)分段分發(fā)到不同的物理機(jī)器上,然后在不同的物理機(jī)器上分別執(zhí)行Mapper,然后統(tǒng)一的對(duì)所有Mapper的輸出集合進(jìn)行排序、分組,再將結(jié)果集合按照KEY運(yùn)行一個(gè)或者多個(gè)Reducer。
      [0009]Wu-Manber 算法介紹
      Wu-Manber算法采用字符塊技術(shù),增大了主串和模式串不匹配的可能性,從而增加了直接跳躍的機(jī)會(huì)。使用散列表選擇模式串集合中的一個(gè)子集與當(dāng)前文本進(jìn)行完全匹配。使用前綴表進(jìn)一步過(guò)濾不匹配的模式串,使算法獲得了較高的運(yùn)行效率。
      [0010]麗算法首先對(duì)模式串集合進(jìn)行預(yù)處理。預(yù)處理階段將建立3個(gè)表格=SHIFT表,HASH表和PREFIX表。SHIFT表用于在掃描文本串的時(shí)候,根據(jù)讀入字符串決定可以跳過(guò)的字符數(shù),如果相應(yīng)的跳躍值為0,則說(shuō)明可能產(chǎn)生匹配。HASH表用來(lái)存儲(chǔ)尾塊字符散列值相同的模式串。PREFIX表用于存儲(chǔ)尾塊字符散列值相同的模式串的首塊字符散列值。
      [0011]SHIFT表為每個(gè)B大小的字符塊維護(hù)一個(gè)key,每個(gè)key值對(duì)應(yīng)的value是遇到該字符塊匹配時(shí),目標(biāo)串的當(dāng)前位置需要移動(dòng)的距離。
      [0012]HASH表的key也是字符塊,value是指向一個(gè)鏈表的指針,這個(gè)鏈表中的元素是當(dāng)SHIFT [key]為O時(shí),后綴為key的模式串。
      [0013]PREFIX 表的生成與 HASH 表相對(duì),HASH 表中的 key 為 T而 PREFIX 表中的key為T [1...B]。有PREFIX表,就可以對(duì)HASH表項(xiàng)指向的鏈表做進(jìn)一步的過(guò)濾,即只有前綴和PREFIX的key值相等的鏈表元素才參與匹配驗(yàn)證。因?yàn)樵谀J郊现屑扔邢嗤暮缶Y又有相同前綴的情況會(huì)更少。
      [0014]算法匹配的大致原理:
      (I)設(shè)當(dāng)前比較的文本串X的hash值為h。如果SHIFT [h]=0,說(shuō)明可能產(chǎn)生了匹配,那么需要進(jìn)一步的判斷。
      [0015](2)用該h值作為索引,查HASH表找到HASH[h],它存儲(chǔ)的是指標(biāo),指向兩個(gè)單獨(dú)的表:一個(gè)是模式鏈表,另一個(gè)是PREFIX表。模式鏈表中存放的是后B個(gè)字符的hash值同為h的所有模式。
      [0016](3)對(duì)于待比較長(zhǎng)度為m的串,如果其長(zhǎng)度為B的前綴與模式的前綴的hash值也相同,則再將相應(yīng)的文本串與符合的模式逐一進(jìn)行比較,最終判定是否完全匹配。
      [0017]如果T[m-B+1...m]!=p[m-B+1...m],則會(huì)將T的當(dāng)前位置向后移動(dòng)。如果T[m-B+1...m]沒(méi)有在匹配模式中出現(xiàn),則可以放心的移動(dòng)m_B+l個(gè)字符并且繼續(xù)比較T[2m]所在的字符塊和P[m]所在的字符塊;如果T[m_B+l...m]在匹配模式中出現(xiàn)了,則找到T[m-B+1...m]在匹配模式中最后出現(xiàn)的位置是s (通過(guò)SHIFT表查到),然后將T的當(dāng)前位置向后移動(dòng)m-s+1個(gè)位置。

      【發(fā)明內(nèi)容】

      [0018]本發(fā)明公開(kāi)了一種分布式環(huán)境下的模式匹配處理器,結(jié)合分布式計(jì)算環(huán)境改進(jìn)WM模式匹配算法,使WM算法具有更強(qiáng)的可擴(kuò)展性和可并行性,從而能充分利用和更好的控制集群中的機(jī)器相互協(xié)作完成模式匹配的任務(wù)。對(duì)當(dāng)今大數(shù)據(jù)時(shí)代中過(guò)載的信息處理提供了解決方案。
      [0019]本發(fā)明是采取以下技術(shù)方案實(shí)現(xiàn)的:一種分布式環(huán)境下的模式匹配處理器,采用的Wu-Manber算法分為預(yù)處理階段和匹配階段,本發(fā)明將針對(duì)這兩個(gè)階段分別運(yùn)用Map-Reduce編程模型處理,使Wu-Manber算法適用于分布式環(huán)境。
      [0020]本發(fā)明的實(shí)現(xiàn)還包括以下的技術(shù)方案:
      在預(yù)處理階段,針對(duì)每個(gè)匹配模式計(jì)算出該模式的SHIFT表、HASH表和PREFIX表。多個(gè)Mapper可以同時(shí)對(duì)多個(gè)要匹配的模式進(jìn)行預(yù)處理,從而提高了并發(fā)性。[0021]在匹配階段,需要利用兩次Map-Reduce來(lái)完成。第一次的map-Reduce是可選的,只有當(dāng)需要匹配的目標(biāo)串長(zhǎng)度很長(zhǎng)時(shí)才需要運(yùn)行第一次Map-Reduce。此次map-Reduce主要將較長(zhǎng)的目標(biāo)串分成多段,通過(guò)多個(gè)段同時(shí)進(jìn)行匹配來(lái)提高并發(fā)性。
      [0022]本發(fā)明的優(yōu)點(diǎn)和有益效果,具體體現(xiàn)在以下幾個(gè)方面:
      1.使WM算法具有更強(qiáng)的可擴(kuò)展性和可并行性,從而能充分利用和更好的控制集群中的機(jī)器相互協(xié)作完成模式匹配的任務(wù)。
      [0023]2.利用了分布式存儲(chǔ)的優(yōu)點(diǎn)和Map-Reduce編程模型的特征,完成了模式匹配的并行處理,利用多臺(tái)計(jì)算機(jī)的存儲(chǔ)能力和計(jì)算能力來(lái)?yè)Q取時(shí)間效率上的提高。
      [0024]3.對(duì)當(dāng)今大數(shù)據(jù)時(shí)代中過(guò)載的信息處理提供了解決方案。
      【專利附圖】

      【附圖說(shuō)明】
      [0025]圖1是Wu-Manber算法流程;
      圖2是Map-Reduce預(yù)處理階段示意圖;
      圖3是Map-Reduce匹配階段示意圖。
      【具體實(shí)施方式】
      [0026]一種分布式環(huán)境下的模式匹配處理器,采用的Wu-Manber算法分為預(yù)處理階段和匹配階段,本發(fā)明將針對(duì)這兩個(gè)階段分別運(yùn)用Map-Reduce編程模型處理,使Wu-Manber算法適用于分布式環(huán)境。
      [0027]以下結(jié)合說(shuō)明書附圖2對(duì)本發(fā)明中的Map-Reduce預(yù)處理階段做進(jìn)一步詳述:
      在預(yù)處理階段,針對(duì)每個(gè)匹配模式計(jì)算出該模式的SHIFT表、HASH表和PREFIX表。說(shuō)明書附圖2中多個(gè)Mapper可以同時(shí)對(duì)多個(gè)要匹配的模式進(jìn)行預(yù)處理,從而提高了并發(fā)性。
      [0028]Mapper:Mapper的輸入格式為101〈匹配模式P, NULL〉,在Mapper過(guò)程中,每個(gè)匹配模式會(huì)計(jì)算SHIFT表、HASH表和PREFIX表,經(jīng)過(guò)計(jì)算以后各表的KEY為輸出的KEY,但Value中需要加一列表示來(lái)區(qū)分此列屬于SHFIT表、HASH表或是PREFIX表中的內(nèi)容。Value中另一類為表中對(duì)應(yīng)的KEY的內(nèi)容。即Mapper的輸出格式為102〈各個(gè)表中的Key,標(biāo)識(shí)為flag,表中的內(nèi)容Value〉。
      [0029]Partition:此次處理的partition主要用戶根據(jù)標(biāo)識(shí)位將每一行Mapper的輸出映射到用于處理不同類型表的Reducer。Partition的輸入格式是102〈各個(gè)表中的KEY,標(biāo)識(shí)flag,表中的內(nèi)容value〉,輸出格式為103〈Key,Value〉,但是這些輸出會(huì)由不同的Reducer函數(shù)進(jìn)行后續(xù)的處理。
      [0030]Reducer:Reducer函數(shù)可以通過(guò)不同的參數(shù)來(lái)處理不同類型的表中的內(nèi)容,最終將SHIFT表、HASH表和PREFIX表的內(nèi)容插入到各自應(yīng)該屬于的表中。Reducer的輸出仍以分布式文件系統(tǒng)中文件的形式保存,在與目標(biāo)串進(jìn)行模式匹配時(shí)會(huì)將這些結(jié)果分發(fā)到集群中的機(jī)器上。
      [0031]以下結(jié)合說(shuō)明書附圖3對(duì)本發(fā)明中的Map-Reduce匹配階段做進(jìn)一步詳述: 在匹配階段,需要利用兩次Map-Reduce來(lái)完成。
      [0032]第一次的map-Reduce是可選的,只有當(dāng)需要匹配的目標(biāo)串長(zhǎng)度很長(zhǎng)時(shí)才需要運(yùn)行第一次Map-Reduce。此次map-Reduce主要將較長(zhǎng)的目標(biāo)串分成多段,通過(guò)多個(gè)段同時(shí)進(jìn)行匹配來(lái)提高并發(fā)性。
      [0033]Mapper:輸入格式為〈目標(biāo)串,NULL〉,按固定長(zhǎng)度Len將目標(biāo)串分段,每一段作為一個(gè)輸出,輸出格式為〈目標(biāo)串序號(hào),n str (η)>,其中η為段號(hào),表不該記錄為目標(biāo)串的第η段長(zhǎng)度為length的字符串,str (η)表示這段字符串的內(nèi)容??紤]到兩段之間可能有匹配的內(nèi)容,所以需要額外的輸出記錄第η段的后m-1個(gè)字符和第n+1段前m_l個(gè)字符組成的字符串。這些記錄的輸出格式為 < 目標(biāo)串序號(hào),n+0.5 str [length-m+2...length]+str [I?..m_l]>。n+0.5 為段號(hào),str [length-m+2...length] +str [1...m-1]為字段內(nèi)容。
      [0034]Reducer:此次Map-Reduce不需要reducer函數(shù),只需要Mapper排序后的結(jié)果直接輸出。
      [0035]第二次的Map-Reduce是必須的,這也是分布式計(jì)算真正發(fā)揮作用之處,即處理大規(guī)模數(shù)據(jù)的優(yōu)勢(shì)所在。過(guò)程如說(shuō)明書附圖3所示。
      [0036]Mapper:mapper的輸入格式為201〈目標(biāo)串序號(hào),匹配位置(pos),匹配的模式>,Reducer的主要作用是將同一目標(biāo)串的不同段中匹配出的結(jié)果進(jìn)行聚合,輸出格式為202〈目標(biāo)串序號(hào),匹配集合〉,其中匹配集合中的每個(gè)元素是一個(gè)(匹配位置,匹配的模式)對(duì)。
      [0037]利用本發(fā)明所述的技術(shù)方案,或本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案的啟發(fā)下,設(shè)計(jì)出類似的技術(shù)方案,而達(dá)到上述`技術(shù)效果的,均是落入本發(fā)明的保護(hù)范圍。
      【權(quán)利要求】
      1.一種分布式環(huán)境下的模式匹配處理器,其特征在于:采用的Wu-Manber算法分為預(yù)處理階段和匹配階段,本發(fā)明將針對(duì)這兩個(gè)階段分別運(yùn)用Map-Reduce編程模型處理,使Wu-Manber算法適用于分布式環(huán)境。
      2.根據(jù)權(quán)利要求1所述的一種分布式環(huán)境下的模式匹配處理器,其特征在于:所述Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行預(yù)處理,多個(gè)Mapper可以同時(shí)對(duì)多個(gè)要匹配的模式進(jìn)行預(yù)處理。
      3.根據(jù)權(quán)利要求1所述的一種分布式環(huán)境下的模式匹配處理器,其特征在于:所述Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行預(yù)處理,Mapper的輸入格式為〈匹配模式P,NULL〉,Mapper的輸出格式為〈各個(gè)表中的Key,標(biāo)識(shí)為flag,表中的內(nèi)容Value〉。
      4.根據(jù)權(quán)利要求1所述的一種分布式環(huán)境下的模式匹配處理器,其特征在于:所述Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行預(yù)處理,Partition的輸入格式是〈各個(gè)表中的KEY,標(biāo)識(shí)flag,表中的內(nèi)容value〉,輸出格式為〈Key, Value〉。
      5.根據(jù)權(quán)利要求1所述的一種分布式環(huán)境下的模式匹配處理器,其特征在于:所述Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行預(yù)處理Reducer函數(shù)可以通過(guò)不同的參數(shù)來(lái)處理不同類型的表中的內(nèi)容,最終將SHIFT表、HASH表和PREFIX表的內(nèi)容插入到各自應(yīng)該屬于的表中,Reducer的輸出仍以分布式文件系統(tǒng)中文件的形式保存,在與目標(biāo)串進(jìn)行模式匹配時(shí)會(huì)將這些結(jié)果分發(fā)到集群中的機(jī)器上。
      6.根據(jù)權(quán)利要求1所述的一種分布式環(huán)境下的模式匹配處理器,其特征在于:所述Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行匹配,需要利用兩次Map-Reduce來(lái)完成,第一次的map-Reduce是可選的,第二次的Map-Reduce是必須的。
      7.根據(jù)權(quán)利要求6所述的Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行匹配,其特征在于:所述第一次的map-Reduce中Mapper的輸入格式為〈目標(biāo)串,NULL〉,按固定長(zhǎng)度Len將目標(biāo)串分段,每一段作為一個(gè)輸出,輸出格式為〈目標(biāo)串序號(hào),n str (η) >,其中η為段號(hào),表示該記錄為目標(biāo)串的第η段長(zhǎng)度為length的字符串,str (η)表示這段字符串的內(nèi)容。
      8.根據(jù)權(quán)利要求6所述的Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行匹配,其特征在于:所述第一次的map-Reduce中不需要reducer函數(shù),只需要Mapper排序后的結(jié)果直接輸出。
      9.根據(jù)權(quán)利要求6所述的Wu-Manber算法運(yùn)用Map-Reduce編程模型進(jìn)行匹配,其特征在于:所述第二次的map-Reduce中mapper的輸入格式為〈目標(biāo)串序號(hào),匹配位置(pos),匹配的模式〉,輸出格式為〈目標(biāo)串序號(hào),匹配集合〉,其中匹配集合中的每個(gè)元素是一個(gè)(匹配位置,匹配的模式)對(duì)。
      【文檔編號(hào)】G06F9/50GK103885834SQ201310433588
      【公開(kāi)日】2014年6月25日 申請(qǐng)日期:2013年9月22日 優(yōu)先權(quán)日:2013年9月22日
      【發(fā)明者】牛曉芳 申請(qǐng)人:天津思博科科技發(fā)展有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1