999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MapReduce的OCL的并行查詢方法

2018-07-25 11:21:28金仙力馬凱旋
關(guān)鍵詞:規(guī)則模型

金仙力 馬凱旋

(南京郵電大學(xué)計(jì)算機(jī)軟件學(xué)院 江蘇 南京 210003)

0 引 言

近年來,計(jì)算機(jī)應(yīng)用發(fā)展迅速,社交網(wǎng)絡(luò)、電子商務(wù)、數(shù)字城市等許多應(yīng)用領(lǐng)域中產(chǎn)生了規(guī)模巨大的數(shù)據(jù),這些應(yīng)用數(shù)據(jù)不僅存儲(chǔ)量大,而且增長速度也非常迅猛[1]。為了解決上述問題,Google公司在2006年提出了“云計(jì)算”的概念。美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)將云計(jì)算定義為借助互聯(lián)網(wǎng)實(shí)現(xiàn)按需、隨地、便捷地訪問共享資源池的計(jì)算模式。云計(jì)算是信息產(chǎn)業(yè)的一大創(chuàng)新模式,一經(jīng)提出就獲得了各個(gè)領(lǐng)域的廣泛關(guān)注。

OCL以約束的形式描述類的屬性或方法,可以準(zhǔn)確地約束行為,廣泛地應(yīng)用于模型約束中。隨著信息技術(shù)地發(fā)展,OCL約束變得越來越復(fù)雜,OCL規(guī)則庫也相應(yīng)地變得越來越大。OCL查詢功能在處理少量的數(shù)據(jù)時(shí)是高效的,但是在處理大量的數(shù)據(jù)時(shí),不能在有效的時(shí)間內(nèi)得出最終的結(jié)果。所以,如何處理大規(guī)模數(shù)據(jù)下的OCL查詢是迫切需要解決的問題。Google 提出的MapReduce并行編程框架,在處理大規(guī)模數(shù)據(jù)問題上具有顯著的優(yōu)勢,能夠滿足人們對(duì)數(shù)據(jù)處理的需要。

因此,為了提高OCL查詢的速度,本文提出來一種基于MapReduce的OCL并行查詢方法OPQM(OCL Parallel Query Method)。主要內(nèi)容:使用MapReduce等并行編程框架來簡化數(shù)據(jù)的處理模型,通過提取OCL對(duì)象屬性集合,實(shí)現(xiàn)從OCL規(guī)則庫查詢到OCL對(duì)象屬性查詢的查詢轉(zhuǎn)化,并利用MapReduce實(shí)現(xiàn)對(duì)象屬性并行查詢。

1 相關(guān)工作

對(duì)象約束語言O(shè)CL是在UML中特別用來對(duì)約束和規(guī)則進(jìn)行說明的語言[2]。盡管OCL語言是一種形式化語言,但是具有易讀、易寫等特點(diǎn)。它主要有兩個(gè)作用:一是對(duì)模型進(jìn)行語義約束;二是對(duì)模型的查詢。OCL用于查詢時(shí),主要是用于根據(jù)對(duì)象屬性查詢滿足約束條件的對(duì)象,并且在查詢時(shí)可以對(duì)圖中的任何元素寫表達(dá)式。其中,對(duì)象屬性是指與模型中對(duì)象有關(guān)的特征。由上述內(nèi)容可得知,對(duì)于OCL的約束查詢也就相當(dāng)于對(duì)約束中所包含的OCL對(duì)象屬性集合的查詢。

隨著OCL規(guī)則庫的增大,傳統(tǒng)的查詢處理方式需要花費(fèi)大量的時(shí)間匹配所有的對(duì)象屬性與查詢條件。因此,為了提高海量OCL約束查詢的效率,需要一種方法來提高OCL約束的查詢速度,減少整個(gè)查詢的時(shí)間。OCL規(guī)則庫可以遵循XML標(biāo)準(zhǔn)進(jìn)行描述[3],參考XML文檔查詢的優(yōu)化,可以對(duì)OCL規(guī)則庫進(jìn)行查詢優(yōu)化。

目前,有很多關(guān)于XML海量數(shù)據(jù)的分布式處理的研究,黃玉龍等[4]借助關(guān)系數(shù)組等設(shè)計(jì)了處理的XPath查詢算法GRAXQ。在并行查詢階段,依次執(zhí)行每個(gè)定位步且標(biāo)記返回結(jié)果,極大減少了查詢過程中的消重代價(jià)。

閆威等[5]提出了MapReduce編程模型下多謂詞選擇的查詢處理方法。包括海量XML數(shù)據(jù)的存儲(chǔ)方法、MapReduce編程模型下基于多謂詞選擇的Map邏輯算法和Reduce邏輯算法、基于多謂詞選擇的MapReduce查詢優(yōu)化方法,提高了系統(tǒng)的性能。

何志學(xué)等[6]提出TwigMRR算法對(duì)XML Twig查詢進(jìn)行分布式處理。先對(duì)XML數(shù)據(jù)進(jìn)行Dewey編碼,水平切分后存儲(chǔ)于分布式文件系統(tǒng),再進(jìn)行并行查詢。

李東等[7]為了實(shí)現(xiàn)基于MapReduce的XML查詢處理,首先實(shí)現(xiàn)了區(qū)間編碼、前綴編碼、層次編碼3種不同的XML數(shù)據(jù)編碼方式,以此為基礎(chǔ)來研究基于MapReduce的XML結(jié)構(gòu)連接處理。同時(shí),建立了代價(jià)模型,通過代價(jià)估算獲得優(yōu)化的查詢計(jì)劃樹。

Fan等[8]提出了一種基于MapReduce的高效的分布式XPath查詢處理。他們使用虛擬節(jié)點(diǎn)將大規(guī)模XML數(shù)據(jù)文件拆分成文件片段,分配到分布式存儲(chǔ)系統(tǒng)。此外,為了有效地處理大型的XML數(shù)據(jù),他們構(gòu)建分區(qū)索引并使用隨機(jī)訪問機(jī)制來執(zhí)行查詢。

Damigos等[9]提出了一種整合大量XML數(shù)據(jù)的技術(shù),并使用MapReduce框架來有效地查詢集成數(shù)據(jù)。為了實(shí)現(xiàn)這個(gè)功能,他們提出了一個(gè)單步的MapReduce算法,該算法利用虛擬結(jié)構(gòu),并以分布的方式有效地計(jì)算給定XPath查詢的答案。

Choi等[10]為大規(guī)模XML數(shù)據(jù)設(shè)計(jì)了并行樹標(biāo)簽算法。他們提出基于MapReduce框架的兩個(gè)突出的樹標(biāo)簽方案的并行版本。他們利用工作負(fù)載平衡和數(shù)據(jù)重新分區(qū)的技術(shù),解決由于運(yùn)行時(shí)數(shù)據(jù)偏斜和MapReduce的繼承限制而導(dǎo)致的性能問題。

Khatchadourian等[11]提出目前ChuQL的實(shí)現(xiàn)利用現(xiàn)有的主存儲(chǔ)器XQuery處理器并面臨兩個(gè)挑戰(zhàn):中間XML值增長大于內(nèi)存、大量的輸出文件。為此他們描述了兩個(gè)ChuQL構(gòu)造來克服這些限制,分別是使用迭代器來處理XML值序列和分割作業(yè)輸出。

Bi等[12]提出了一種基于大規(guī)模XML文檔的分布式學(xué)習(xí)解決方案,它基于MapReduce技術(shù)將XML文檔分布式轉(zhuǎn)換為表示模型,并采用基于極限學(xué)習(xí)機(jī)的分布式學(xué)習(xí)組件進(jìn)行分類或聚類任務(wù)。

Song等[13]集成了數(shù)據(jù)存儲(chǔ),標(biāo)簽,索引和并行查詢,以處理大量的XML數(shù)據(jù)。具體來說,引入了SDN標(biāo)簽算法和使用DHT的分布式分層索引。

Bidoit等[14]提出一個(gè)處理大型XML文檔的查詢和更新的研究原型。該原型基于靜態(tài)和動(dòng)態(tài)分割輸入文檔的想法,以便在Map / Reduce集群的機(jī)器之間分配計(jì)算負(fù)載??梢赃\(yùn)行預(yù)定義的查詢和更新符合XMark模式的文檔,以及提交自己的查詢和更新。

Consens等[15]描述了ChuQL,一個(gè)MapReduce擴(kuò)展到XQuery,以及相應(yīng)的Hadoop實(shí)現(xiàn)。ChuQL語言結(jié)合了記錄來支持MapReduce的鍵/值數(shù)據(jù)模型,并且利用高階函數(shù)提供語義。

XML已經(jīng)是網(wǎng)絡(luò)信息描述和交換的標(biāo)準(zhǔn),隨著越來越廣泛的XML應(yīng)用,關(guān)于XML數(shù)據(jù)的查詢方法也越來越多。但是,很多XML數(shù)據(jù)查詢方法都存在相應(yīng)的局限性。

由此可知,OCL規(guī)則庫可以遵循XML標(biāo)準(zhǔn)進(jìn)行描述,參考XML文檔查詢的優(yōu)化,可以對(duì)OCL規(guī)則庫進(jìn)行查詢優(yōu)化。但是與XML文檔相比,OCL規(guī)則庫中的對(duì)象屬性所包含了許多豐富的信息,我們需要對(duì)這部分屬性進(jìn)行相應(yīng)的處理。本文中我們采用預(yù)處理的方式,對(duì)涉及的所有OCL對(duì)象屬性進(jìn)行提取,并使用并行模型來解析匹配這些屬性。

2 基于對(duì)象屬性的OCL并行查詢

2.1 MapReduce并行處理模型

MapReduce是谷歌首先提出的一種在大型計(jì)算機(jī)集群上處理大數(shù)據(jù)的并行計(jì)算模型,在谷歌以及其他公司的許多項(xiàng)目中得到了廣泛應(yīng)用。它是數(shù)據(jù)密集型的并行計(jì)算模型,即特別適合于處理大規(guī)模海量數(shù)據(jù)。MapReduce既是一種并行計(jì)算模型,又是一種并行計(jì)算框架。

MapReduce計(jì)算模式是云計(jì)算的核心計(jì)算模式,解決大規(guī)模數(shù)據(jù)的處理問題。它在設(shè)計(jì)之初,就將局部性原理納入考慮的范疇,通過利用局部性原理實(shí)現(xiàn)問題的分而治之。Map 調(diào)用能夠被分布到多個(gè)節(jié)點(diǎn)執(zhí)行,是通過將輸入數(shù)據(jù)分割為若干個(gè)數(shù)據(jù)片段的集合實(shí)現(xiàn)的,不同的節(jié)點(diǎn)能夠同時(shí)并行處理輸入的數(shù)據(jù)片段,同時(shí)Reduce 調(diào)用也會(huì)被分布到多個(gè)節(jié)點(diǎn)上并行執(zhí)行。Map 調(diào)用產(chǎn)生的中間 key 值會(huì)被分區(qū)函數(shù)分成N個(gè)分區(qū),其中的分區(qū)函數(shù)、分區(qū)個(gè)數(shù)(N)由用戶決定。MapReduce流程的三個(gè)階段如圖1所示。

圖1 MapReduce的操作流程圖

(1) Map階段 由于 Map 是并行操作數(shù)據(jù)集,所以用戶程序首先會(huì)調(diào)用的MapReduce庫,對(duì)輸入的數(shù)據(jù)集進(jìn)行操作,將數(shù)據(jù)集分割成一些數(shù)據(jù)片段如上圖的數(shù)據(jù)塊。在數(shù)據(jù)分割完以后,會(huì)形成多個(gè)分割體,為了保證處理的效率,分割體會(huì)被分配到不同的Map處理器上進(jìn)行并行處理。Hadoop 中的類 Input Format,從輸入數(shù)據(jù)中解析出鍵值 (key/value)對(duì)。接下來,Map函數(shù)接收傳入的鍵值(key/value),并對(duì)其進(jìn)行處理,產(chǎn)生中間的鍵值 (key/value)對(duì),并將這些中間數(shù)據(jù)緩存到內(nèi)存中。同時(shí),為了提高Reduce的處理效率以及增加集群內(nèi)部數(shù)據(jù)的傳輸速度,在Map函數(shù)之后設(shè)置了一個(gè)洗牌(shuffle)過程。

(2) 中間階段 中間階段的實(shí)現(xiàn)主要是由Hadoop 框架提供的一個(gè)合成器(Combine)來完成。中心控制作業(yè) Job Tracker 會(huì)選取節(jié)點(diǎn)來進(jìn)行 Map 運(yùn)算,產(chǎn)生鍵值(key/value)對(duì)。同時(shí),綜合考慮性能和效率因素,這些鍵值(key/value)將被收集到一些 List 數(shù)據(jù)集中,而不會(huì)立即寫入輸出文件。

(3) Reduce 階段 這個(gè)過程由復(fù)制、排序、 reduce 任務(wù)這3個(gè)步驟組成。在集群模式下,首先,服務(wù)器上的中間階段數(shù)據(jù)會(huì)周期性地復(fù)制到本地文件系統(tǒng)上。復(fù)制完數(shù)據(jù)之后,Reduce 任務(wù)會(huì)對(duì)這些中間階段的數(shù)據(jù)進(jìn)行排序,將具有相同的數(shù)據(jù)進(jìn)行整理并合并到一個(gè)文件中。最后一步由 Reduce 函數(shù)完成,將鍵(key)所對(duì)應(yīng)的值(values)傳給 Reduce 函數(shù)產(chǎn)生最后的結(jié)果。

將MapReduce并行模型和OCL規(guī)則庫的存儲(chǔ)結(jié)構(gòu)綜合起來,MapReduce中的最小處理單元即是OCL規(guī)則庫中的一個(gè)對(duì)象屬性。在處理過程中,節(jié)點(diǎn)根據(jù)實(shí)際的查詢,匹配并篩選OCL對(duì)象屬性,得到滿足條件的對(duì)象屬性集合,并對(duì)其進(jìn)行構(gòu)造得到最終的查詢結(jié)果。

2.2 對(duì)象屬性集提取Extraction算法

并行處理模型面對(duì)的處理對(duì)象必須可以拆分,也就是說這些處理對(duì)象能夠被分成若干個(gè)子對(duì)象,這樣才能被不同的處理器并行處理。MapReduce模型和上述的工作原理一致,它是把一個(gè)大的數(shù)據(jù)分割成多個(gè)獨(dú)立的片斷(Splits)。

為了讓OCL規(guī)則庫可以有效地在云計(jì)算的環(huán)境下進(jìn)行并行查詢,就需要對(duì)OCL規(guī)則庫進(jìn)行預(yù)處理,即對(duì)OCL規(guī)則庫提取對(duì)象屬性,并由此組成OCL對(duì)象屬性集合,用集合來替代原來的OCL規(guī)則庫作為云計(jì)算并行模型中的輸入數(shù)據(jù)。

在MapReduce并行模型中,這些對(duì)象屬性集合就會(huì)被分割成多個(gè)獨(dú)立的Splits,然后若干個(gè)Splits將被分配到不同的Map處理器上進(jìn)行處理,每個(gè)Splits經(jīng)過Map函數(shù)處理之后,還會(huì)有一個(gè)洗牌(shuffle)過程,之后才進(jìn)行相應(yīng)的Reduce任務(wù)。

我們使用的預(yù)處理方法是基于Hadoop的InputFormat,根據(jù)查詢條件,篩選出OCL規(guī)則庫中滿足條件的對(duì)象屬性片段并構(gòu)造OCL對(duì)象屬性集合。

使用算法Extraction(fileName,nodeName)提取對(duì)象屬性,其中fileName是OCL原始規(guī)則庫名(該規(guī)則庫是預(yù)先存儲(chǔ)在HDFS 中的),nodeName是提取節(jié)點(diǎn)名,也就是OCL對(duì)象屬性名。圖2就是OCL查詢對(duì)象的轉(zhuǎn)換過程。

圖2 OCL查詢對(duì)象的轉(zhuǎn)換

OCL規(guī)則庫存儲(chǔ)于HDFS(Hadoop Distribute FileSystem),我們需要對(duì)規(guī)則庫所在的所有塊進(jìn)行并行遍歷,篩選出滿足條件的OCL對(duì)象屬性,用其構(gòu)造成OCL對(duì)象屬性集合,具體的過程如算法1所描述。

算法1對(duì)象屬性提取Extraction算法

輸入: HDFS file path: ocl; OCL Attribute List : attributeList.

輸出: OCL Attribute Set: attributeSet

1. blockList = procedure Locate(ocl)

2. /*定位ocl對(duì)應(yīng)的所有block*/

3. for each block in blockList do:

4. /*對(duì)存儲(chǔ)在本節(jié)點(diǎn)上的block進(jìn)行處理*/

5. for each attribute in block do:

6. if attribute in attributeList then:

7. /*驗(yàn)證當(dāng)前屬性是否屬于指定OCL屬性*/

8. attributeSet = attributeSet ∪ {attribute}

9. /*將當(dāng)前屬性插入返回集合中*/

10. end if

11. end for

12. end for

上述Extraction算法中的時(shí)間復(fù)雜度為O(m×n),其中m為blockList中的block的數(shù)量,n為block中attribute數(shù)量,Extraction算法的流程圖如圖3所示。

圖3 Extraction算法流程圖

一個(gè)車輛管理系統(tǒng)和其對(duì)象屬性的XML描述如下所示:

……

This owner is registered

Lily

female

35

2016-12-12

C00005,C00001

……

……

其中第一個(gè)中間的部分是一個(gè)對(duì)象屬性,在該片段中表示一個(gè)Owner(車主對(duì)象)。多個(gè)OCL對(duì)象屬性組成了一個(gè)OCL約束規(guī)則庫的整體,一個(gè)OCL規(guī)則庫可以包括多類對(duì)象屬性,具體情況根據(jù)實(shí)際需要所定。當(dāng)然,實(shí)際上涉及的OCL規(guī)則庫都比以上內(nèi)容復(fù)雜得多。

利用圖3的算法,可以從以上案例中提取Owner所有屬性,如Owner=Extraction(″system.xml″,{″Owner″}),得到用于并行查詢的OCL對(duì)象屬性集合Owner,該數(shù)據(jù)集合Owner如下所示:

1.

2. This is redheaded/registered

3. Lily

4.

5. female

6. 35

7.

8.

9. C00001,C00005

10.

11.

12. 2016-12-12

13.

14.

15. This owner is yellowheaded/registered

16. hobby

17.

18. male

19. 20

20.

21.

22. C11111

23.

24.

25. 2016-12-18

26.

27. ……

2.3 OCL并行查詢處理

OCL并行查詢輸入的數(shù)據(jù)實(shí)際上是OCL對(duì)象屬性集合。由上一小節(jié)可知,Extraction算法根據(jù)標(biāo)簽對(duì)從OCL規(guī)則庫中獲得符合條件的OCL片段,并組合成了OCL對(duì)象屬性集合。在完成預(yù)處理后,OCL并行查詢剩下的工作就是對(duì)對(duì)象屬性進(jìn)行篩選并獲取結(jié)果,需要依據(jù)實(shí)際的查詢情況建立對(duì)應(yīng)的MapReduce任務(wù)。在MapReduce任務(wù)中,Mapper或Reducer處理器處理的對(duì)象屬性,是以流的形式傳遞進(jìn)來的。在Map函數(shù)之后,還會(huì)有一個(gè)洗牌(shuffle)過程,之后才會(huì)進(jìn)行相應(yīng)的Reduce任務(wù)進(jìn)行最終結(jié)果的構(gòu)建。

整個(gè)OCL并行查詢包括對(duì)象屬性篩選和構(gòu)造查詢結(jié)果兩部分。OCL查詢會(huì)被處理器翻譯成若干個(gè)MapReduce任務(wù),每個(gè)MapReduce任務(wù)可以處理一個(gè)或多個(gè)查詢條件,以此來篩選對(duì)象屬性。最后,將篩選出來符合查詢條件的對(duì)象屬性進(jìn)行結(jié)果構(gòu)造,得到最終的結(jié)果。以查詢年齡不小于25的Owner為例,該查詢可以理解為這樣一個(gè)簡單MapReduce任務(wù):Mapper處理器將傳入進(jìn)來的Owner進(jìn)行篩選,如果當(dāng)前處理的Owner對(duì)象年齡小于25就將其忽略掉,如果Owner年齡大于25就會(huì)被傳遞給Reducer處理器進(jìn)行結(jié)果構(gòu)造。圖4所示的就是上述查詢過程。

圖4 查詢流程

在上述的查詢流程中,3個(gè)Mapper處理的Owner1-Owner6這6個(gè)對(duì)象,其中只有Owner1、Owner4、Owner5滿足要求,所以只有它們將被傳送到Reduce處理器進(jìn)行構(gòu)造最終結(jié)果。實(shí)際的OCL查詢中涉及的查詢要比圖4所示內(nèi)容復(fù)雜很多,OCL查詢會(huì)被查詢處理器轉(zhuǎn)換成一組MapReduce任務(wù),以此來篩選規(guī)則庫,并將OCL規(guī)則庫中符合查詢要求的片段進(jìn)行最終結(jié)果構(gòu)造。

3 實(shí)驗(yàn)結(jié)果及分析

3.1 實(shí)驗(yàn)環(huán)境和數(shù)據(jù)

為驗(yàn)證本文方法,設(shè)計(jì)了一個(gè)實(shí)驗(yàn)平臺(tái)。實(shí)驗(yàn)平臺(tái)是由6臺(tái)普通的PC機(jī)(Intel P4 2.8 GHz,雙核處理器,內(nèi)存2 GB,Ubuntu10.04)組成。該實(shí)驗(yàn)平臺(tái)利用Hadoop開源框架對(duì)集群進(jìn)行管理:1個(gè)節(jié)點(diǎn)當(dāng)作Name-Node/JobTracker對(duì)整個(gè)集群進(jìn)行管理,剩下的5個(gè)節(jié)點(diǎn)為DataNode/TaskTracker,對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和處理。

實(shí)驗(yàn)數(shù)據(jù)使用的是車輛管理系統(tǒng)的OCL規(guī)則庫(包含:用戶數(shù)據(jù)、車輛數(shù)據(jù)、登錄數(shù)據(jù)、加入用戶的數(shù)據(jù))轉(zhuǎn)換成實(shí)驗(yàn)使用的XML描述文檔。表1所示為數(shù)據(jù)集的具體信息。

表1 實(shí)驗(yàn)數(shù)據(jù)集

3.2 實(shí)驗(yàn)與分析

對(duì)于OCL 的查詢,可以將其分成下面幾類:1) 對(duì)象屬性查詢,如:查詢年齡大于25的Owner;2) 對(duì)象屬性操作查詢,如查找Owner登錄時(shí)需要滿足哪些約束;3) 對(duì)象屬性關(guān)系查詢,這種類型的查詢需要對(duì)兩個(gè)對(duì)象屬性之間的關(guān)系進(jìn)行匹配,如:查詢 1號(hào)Owner擁有的所有車,就需要多次進(jìn)行多個(gè)OCL片段集間的比較才能完成。

下面,我們從三個(gè)方面來研究查詢的效果。

3.2.1 查詢時(shí)間隨文檔大小的變化情況

如圖5所示,文檔大小對(duì)查詢時(shí)間的影響。

圖5 查詢時(shí)間與文件大小關(guān)系

根據(jù)圖5顯示,隨著文檔大小的增加,查詢時(shí)間逐漸增長,但二者并不是成正比。這是由于選取OCL片段集時(shí),只選取與查詢條件相關(guān)的OCL片段,而不是選取原始規(guī)則庫的全部內(nèi)容。同時(shí),OCL對(duì)象屬性關(guān)系查詢需要對(duì)兩個(gè)對(duì)象屬性之間的關(guān)系進(jìn)行匹配,需要多次進(jìn)行多個(gè)OCL片段集之間的比較才能完成,所以此類查詢與對(duì)象屬性查詢、對(duì)象屬性操作查詢相比,需要更多的時(shí)間。基于MapReduce的OCL并行查詢,同時(shí)利用了OCL片段集的方法,可以有效地減輕查詢的負(fù)荷,與單機(jī)的OCL查詢相比,查詢效率顯著提高。

3.2.2 查詢時(shí)間隨集群規(guī)模的變化情況

如圖6所示,研究OCL規(guī)則庫的對(duì)象屬性查詢、對(duì)象屬性操作查詢,分析集群規(guī)模對(duì)查詢時(shí)間的影響。

圖6 查詢時(shí)間與集群規(guī)模的關(guān)系

如圖所示,查詢時(shí)間與集群規(guī)模成負(fù)相關(guān),但是隨著集群規(guī)模的增大,查詢時(shí)間的減少幅度逐漸降低。這就需要我們在實(shí)際的查詢中,將效率提高收益和硬件成本綜合起來考慮,選擇最佳的集群規(guī)模。數(shù)據(jù)集的大小為3.9 GB,同時(shí)將集群文件系統(tǒng)的Block設(shè)為64 MB,將處理節(jié)點(diǎn)的最大Mapper和Reducer數(shù)設(shè)為2。因?yàn)楸緦?shí)驗(yàn)所涉及的處理器為雙核,所以設(shè)置為常數(shù)2可以充分地利用處理器的能力。

3.2.3 查詢時(shí)間隨集群配置的變化情況

圖7表示查詢時(shí)間與集群配置變化的關(guān)系,數(shù)據(jù)集的大小為5.1 GB。

圖7 查詢時(shí)間與集群配置的關(guān)系

如圖7所示,查詢時(shí)間隨著HDFS中塊(Block)的增大而逐漸減小。因?yàn)?,?dāng)HDFS的塊設(shè)置增大時(shí),Hadoop集群需要用來處理OCL對(duì)象屬性集合的Map和Reduce任務(wù)減少,進(jìn)而使任務(wù)配置和中間結(jié)果的傳輸?shù)臅r(shí)間縮短,所以整個(gè)查詢時(shí)間會(huì)相應(yīng)縮短。但是HDFS的塊設(shè)置過大,OCL規(guī)則庫相對(duì)過小,會(huì)造成集群內(nèi)各節(jié)點(diǎn)負(fù)載不均衡,進(jìn)而影響查詢總效率。根據(jù)圖7實(shí)驗(yàn)結(jié)果,將Block大小設(shè)置為64 MB或者128 MB時(shí),處理器可以被充分利用,能夠有效地減小查詢時(shí)間,提高查詢效率。

4 結(jié) 語

本實(shí)驗(yàn)將針對(duì)OCL規(guī)則庫的查詢轉(zhuǎn)換成對(duì)象屬性集合的查詢,使用MapReduce模型處理集合中的每個(gè)對(duì)象屬性,提高了對(duì)OCL查詢的效率,縮短了查詢時(shí)間。本文的OPQM方法充分利用了MapReduce框架,與傳統(tǒng)的單機(jī)查詢相比,無論是查詢時(shí)間還是查詢效率,都有很大的優(yōu)勢。后續(xù)將在本文的工作基礎(chǔ)上,學(xué)習(xí)和研究云計(jì)算海量數(shù)據(jù)存儲(chǔ),針對(duì)更大規(guī)模的OCL規(guī)則庫,更好地提高查詢效率。

猜你喜歡
規(guī)則模型
一半模型
撐竿跳規(guī)則的制定
數(shù)獨(dú)的規(guī)則和演變
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
規(guī)則的正確打開方式
幸福(2018年33期)2018-12-05 05:22:42
讓規(guī)則不規(guī)則
Coco薇(2017年11期)2018-01-03 20:59:57
TPP反腐敗規(guī)則對(duì)我國的啟示
3D打印中的模型分割與打包
搜索新規(guī)則
主站蜘蛛池模板: 亚洲欧美精品一中文字幕| 欧美区日韩区| 一级全免费视频播放| 久久人与动人物A级毛片| 欧美亚洲一区二区三区在线| 国产精品久久久久久久伊一| 91九色国产porny| 日韩福利在线视频| 亚洲天堂伊人| 亚洲天天更新| 女人一级毛片| 国产美女一级毛片| 97成人在线视频| 国产精品流白浆在线观看| 久久九九热视频| 国产成人亚洲无吗淙合青草| 97青草最新免费精品视频| 日韩a在线观看免费观看| 国产全黄a一级毛片| AV不卡国产在线观看| 日本一区中文字幕最新在线| 精品视频一区在线观看| 波多野结衣二区| 国产自产视频一区二区三区| 亚洲a级在线观看| 婷婷色婷婷| 国产精品第一区在线观看| 蜜臀AV在线播放| 欧美一区日韩一区中文字幕页| 99国产精品国产高清一区二区| 久一在线视频| 亚洲成综合人影院在院播放| 在线观看亚洲人成网站| www.国产福利| 久久99国产综合精品1| 97色伦色在线综合视频| 91久久偷偷做嫩草影院| 999在线免费视频| 国内精品久久人妻无码大片高| 欧美色视频在线| 日韩免费毛片| 国产精品免费福利久久播放| 麻豆精品在线| 男女猛烈无遮挡午夜视频| 亚洲国产精品无码久久一线| 亚洲欧洲日韩综合色天使| 国产精品成人观看视频国产| 亚洲,国产,日韩,综合一区| 青青久久91| 女人av社区男人的天堂| 久夜色精品国产噜噜| 白浆免费视频国产精品视频| 91美女视频在线| 第一页亚洲| 亚洲精品制服丝袜二区| 国产自在自线午夜精品视频| 最新加勒比隔壁人妻| 啦啦啦网站在线观看a毛片| 国产国拍精品视频免费看| 国产精品免费入口视频| 中文字幕免费视频| 中国毛片网| 伊人成色综合网| 日本欧美一二三区色视频| 熟妇丰满人妻| 在线免费无码视频| 成人亚洲国产| 一级一级一片免费| 在线免费a视频| 欧美精品伊人久久| 亚洲精品国产日韩无码AV永久免费网| 91一级片| 最新国产成人剧情在线播放| 日本在线免费网站| 国产内射在线观看| 91久久精品国产| 园内精品自拍视频在线播放| 中文字幕人妻av一区二区| 国产成人免费观看在线视频| 国产国语一级毛片| 青青草欧美| 伊人久久综在合线亚洲2019|