亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Hadoop平臺(tái)下Skyline查詢算法優(yōu)化研究

        2015-11-07 08:52:47王志力王彥麗李廣慶
        中國(guó)科技信息 2015年24期
        關(guān)鍵詞:堆棧副本結(jié)點(diǎn)

        王志力 王彥麗 李廣慶

        基于Hadoop平臺(tái)下Skyline查詢算法優(yōu)化研究

        王志力 王彥麗 李廣慶

        本文利用云計(jì)算下Hadoop平臺(tái)搭建實(shí)驗(yàn)環(huán)境,在每個(gè)存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)上對(duì)數(shù)據(jù)建立R-樹(shù)索引,將操作分散到分布式索引集群的各個(gè)節(jié)點(diǎn)上,同時(shí)采用云計(jì)算下現(xiàn)有優(yōu)秀的Hadoop平臺(tái)調(diào)度算法,提高M(jìn)ap/Reduce性能,通過(guò)設(shè)計(jì)和改進(jìn)一種基于索引并行的近鄰NN(Nearest Neighbor,最近鄰)算法。通過(guò)實(shí)驗(yàn)測(cè)試,體現(xiàn)算法的優(yōu)越性和漸進(jìn)性,從而減少I/O的讀取次數(shù)和CPU的計(jì)算成本,最終實(shí)現(xiàn)數(shù)據(jù)的查詢處理優(yōu)化目的。

        Skyline查詢算法在實(shí)際應(yīng)用中確實(shí)表現(xiàn)出不錯(cuò)的查準(zhǔn)率和查全率,目前很多改進(jìn)的Skyline查詢算法查詢效率都不是很高,所以面對(duì)海量數(shù)據(jù)時(shí),查詢算法主要改進(jìn)查詢時(shí)間效率,漸進(jìn)性,負(fù)載平衡和數(shù)據(jù)容錯(cuò)性處理等方面。目前主要從數(shù)據(jù)庫(kù)存儲(chǔ)方式方面設(shè)計(jì)Skyline查詢算法,大多是在數(shù)據(jù)節(jié)點(diǎn)上建立索引達(dá)到查詢優(yōu)化的目的。

        Skyline計(jì)算

        Skyline計(jì)算應(yīng)用于很多不同領(lǐng)域的數(shù)據(jù)集,比如集中式數(shù)據(jù)庫(kù)、時(shí)空數(shù)據(jù)庫(kù)、數(shù)據(jù)流、分布式數(shù)據(jù)庫(kù)和屬性數(shù)據(jù)分類數(shù)據(jù)中。Skyline算法主要偏向于個(gè)人偏好查詢,在數(shù)據(jù)庫(kù)中搜索不被支配的點(diǎn)。一個(gè)點(diǎn)所以支配另外一個(gè)點(diǎn)是因?yàn)榈谝粋€(gè)點(diǎn)至少肯定有一項(xiàng)要比另外一個(gè)點(diǎn)要好,該算法主要根據(jù)用戶的選擇和喜好找到適合的語(yǔ)義。Skyline計(jì)算在數(shù)據(jù)領(lǐng)域的定義:在一個(gè)數(shù)據(jù)集中D={s1,s2,s3,…sn},其中各數(shù)據(jù)點(diǎn)可表示為Si={p1,p2,…,pn},i=1,2,3,…n-1,n。對(duì)于任何一個(gè)pi∈D,pi∈(0,1),對(duì)于pi來(lái)說(shuō),數(shù)據(jù)的屬性值越小越好。查詢對(duì)象數(shù)據(jù)集合中所有不被其他點(diǎn)支配的點(diǎn)組成的集合謂Skyline查詢;其中每個(gè)點(diǎn)稱之為SP。本文中的Skyline查詢優(yōu)化算法采用索引技術(shù),減少Skyline計(jì)算中SP點(diǎn)和點(diǎn)之間的比較次數(shù),然后盡可能的找到最合適的SP點(diǎn)。

        最近鄰的Skyline查詢算法

        基于索引的Skyline算法是指在輸出用戶自己要查詢的SP點(diǎn)前,首先建立分布式數(shù)據(jù)結(jié)構(gòu),通過(guò)利用用戶建立的索引,盡量減少Skyline計(jì)算過(guò)程中點(diǎn)和點(diǎn)比較的次數(shù),優(yōu)先找出最可能得SP點(diǎn)。一般的Skyline查詢算法比較次數(shù)的最好情形為O(kn),最壞復(fù)雜度為O(kn2)。最近鄰算法(NearestNeighbor,簡(jiǎn)稱NN)是對(duì)數(shù)據(jù)對(duì)象構(gòu)建R-樹(shù)索引,求出距離最近的點(diǎn),對(duì)該點(diǎn)進(jìn)行數(shù)據(jù)分區(qū),構(gòu)建矩形區(qū),同時(shí)遞歸調(diào)用算法來(lái)計(jì)算,直到分區(qū)中不含有任何Skyline查詢結(jié)果為止。NN算法的是在數(shù)據(jù)集中找到的k個(gè)最近的鄰居,根據(jù)分類屬性統(tǒng)計(jì),統(tǒng)計(jì)出的結(jié)構(gòu)按照分類屬性來(lái)賦值。因此在類別決策時(shí),只與極少量的相鄰樣本有關(guān)。NN算法主要靠極少的鄰居樣本進(jìn)行分類,它更應(yīng)用于類別比較多的數(shù)據(jù)。

        Hadoop平臺(tái)上NN算法查詢優(yōu)化研究

        改進(jìn)NN查詢算法

        Skyline查詢改進(jìn)后使用分枝界定法。首先采取R-樹(shù)遍歷,然后再訪問(wèn)MBR分配到各層。從根結(jié)點(diǎn)N開(kāi)始,對(duì)所有的結(jié)點(diǎn)離根節(jié)點(diǎn)N的距離進(jìn)行計(jì)算,分片采用升序方式存儲(chǔ)在內(nèi)存堆棧中,如果結(jié)點(diǎn)不被SP中的點(diǎn)支配,繼續(xù)遍歷其孩子結(jié)點(diǎn),若孩子結(jié)點(diǎn)被SP支配,那么放棄這個(gè)結(jié)點(diǎn),否則繼續(xù)存儲(chǔ)在內(nèi)存堆棧中,如此循環(huán)下去直到找到葉子結(jié)點(diǎn)并且不被SP支配,那么這個(gè)點(diǎn)一定是Skyline點(diǎn)。把這個(gè)點(diǎn)存儲(chǔ)在表中。循環(huán)如此,直到堆棧為空。在每次查詢過(guò)程中需要執(zhí)行多次Skyline查詢,多次遍歷R-樹(shù)。

        改進(jìn)后的算法采用一種相互Skyline查詢,在查詢過(guò)程中利用局部查詢得到Skyline集合來(lái)盡量減少SP點(diǎn),提高搜索效率,減少I/O開(kāi)銷。當(dāng)數(shù)據(jù)量非常大的時(shí)候,可能出現(xiàn)錯(cuò)誤不能保證查詢正常進(jìn)行,運(yùn)行故障監(jiān)測(cè)和任務(wù)遷移,在查詢過(guò)程中找到發(fā)生的故障,將故障中的任務(wù)遷移到副本,盡量保證查詢的正常執(zhí)行。圖1是M=2階R-樹(shù),圖2是M=2階R-樹(shù)在二維空間上的表現(xiàn)形式。

        圖1 M=2階 R-樹(shù)

        圖2 R-樹(shù)二維空間上的表現(xiàn)形式

        具體步驟如下。

        (1)將根所包含的結(jié)點(diǎn)n1升序放入堆D1中,同時(shí)將根所包含的結(jié)點(diǎn)n2升序置入堆棧D2中。

        (2)首先對(duì)最近距離節(jié)點(diǎn)n1操作:移出棧中的n1,將n1的2個(gè)孩子(n3,n4)插入堆棧D1中,然后在對(duì)n3節(jié)點(diǎn)進(jìn)行擴(kuò)展,由于n3的兩個(gè)孩子結(jié)點(diǎn)(1、2)結(jié)點(diǎn)不被S1支配,將(1、2)插入堆棧D1里,移出最小距離的1,2,因?yàn)?和2是葉子的結(jié)點(diǎn)并且同時(shí)不被S所能支配,于是1、2就被放入Skyline點(diǎn)的固定列表S中。這樣我們就得到了局部的skyline點(diǎn)。通過(guò)用S1中的點(diǎn)與后面堆D1中的結(jié)點(diǎn)比較要被擴(kuò)展后的結(jié)點(diǎn)n4,如果n4被S中的已經(jīng)插入的點(diǎn)支配,所以n4移除,當(dāng)堆棧D1為null時(shí),S1中的點(diǎn)確認(rèn)為全局的Skyline點(diǎn)。

        (3)同樣的道理,對(duì)于(2)中的可以操作:將(5、6)插入堆D2中,這樣我們就得到了局部的Skyline點(diǎn)。通過(guò)用S2中的點(diǎn)與后面堆D2中的結(jié)點(diǎn)比較要擴(kuò)展的是結(jié)點(diǎn),當(dāng)堆D2為空時(shí),S2中的點(diǎn)就是局部所有的Skyline點(diǎn)。

        (4)我們將S1中的全局Skyline點(diǎn)(1,2)與S2中的局部Skyline點(diǎn)(5,6)進(jìn)行比較交集,得出S=(1,2)。

        (5)局部Skyline查詢找到點(diǎn)的時(shí)候不斷的更新這個(gè)查詢點(diǎn),全局Skyline查詢則不需要。

        當(dāng)數(shù)據(jù)量非常大的時(shí)候,容易出現(xiàn)局部Skyline集合發(fā)生故障,比如堆過(guò)大,線路中斷等情況。在算法執(zhí)行過(guò)程中協(xié)調(diào)者一直在監(jiān)測(cè)整個(gè)查詢過(guò)程,局部Skyline計(jì)算過(guò)程中周期性地保存中間結(jié)果和計(jì)算狀態(tài)至可靠節(jié)點(diǎn)。

        (1)協(xié)調(diào)者接收查詢請(qǐng)求后,將查詢請(qǐng)求運(yùn)行;

        (2)協(xié)調(diào)者把發(fā)送查詢后接收所有返回局部Skyline集合放入Sn中;

        (3)如果有未返回的局部Skyline集合,協(xié)調(diào)者發(fā)送消息探測(cè)等待看是否發(fā)生故障,如果未發(fā)生故障,則合并所有局部Skyline數(shù)據(jù)集;把所有的局部合并成全局Skyline集合;

        (4)協(xié)調(diào)者將全局Skyline集合返回給用戶,查詢成功,退出;

        (5)否則記錄故障,找到故障寫入訪問(wèn)記錄文件RecordFile;

        (6)檢查RecordFile的status是否完成;若是完成則繼續(xù)查詢執(zhí)行(2),否則取出SP(dn),通過(guò)比較數(shù)據(jù)副本的負(fù)載平衡,用state記錄副本節(jié)點(diǎn)的忙閑,堆D(n)中等待該副本節(jié)點(diǎn)的運(yùn)行者,Time記錄副本節(jié)點(diǎn)最近一次更新的時(shí)間;

        (7)查找空閑副本,重新發(fā)送請(qǐng)求,找到合適數(shù)據(jù)副本的節(jié)點(diǎn)繼續(xù)執(zhí)行(3)。

        算法分析

        通過(guò)分支界定法,局部查詢算法,查詢次數(shù)算法執(zhí)行訪問(wèn)結(jié)點(diǎn)的數(shù)目(N)小于s*h(h為R-樹(shù)的高度),減少了SP點(diǎn)的訪問(wèn)次數(shù)。算法所需的堆中結(jié)點(diǎn)的數(shù)目應(yīng)小于(s-1)*N。不符合的SP點(diǎn)直接支配剪掉,不影響后續(xù)查詢。

        算法實(shí)驗(yàn)評(píng)估

        本文實(shí)驗(yàn)環(huán)境在百兆局域網(wǎng)中的5臺(tái)PC機(jī)中運(yùn)行,配置為:處理器:IntelCorei3-3210M(2.5GHz/ L33M),內(nèi)存容量:2GB,硬盤容量:80GB,操作系統(tǒng)為WindowsXP。準(zhǔn)備多臺(tái)服務(wù)器,虛擬機(jī)VMware的安裝,下載安裝軟件并分別在5臺(tái)機(jī)器上安裝。由于5臺(tái)機(jī)器的D盤剩余空間都較大,統(tǒng)一在D盤安裝VMwareWorkstation軟件,分配空間10G。設(shè)置1臺(tái)Master機(jī),4臺(tái)Slave機(jī)。安裝Linux系統(tǒng)中的Ubuntu的iso文件。Jdk采用Jdk1.6.0版本和Hadoop采用版本hadoop-0.20.2。

        圖3 二維數(shù)據(jù)的查詢比較

        圖4 三維數(shù)據(jù)的查詢比較

        第一組實(shí)驗(yàn)R-樹(shù)采用頁(yè)面尺寸設(shè)置為512B,768B,1024B,3072B,本實(shí)驗(yàn)在二維和三維數(shù)據(jù)上進(jìn)行測(cè)試。采用JAVA語(yǔ)言來(lái)進(jìn)行編譯。圖3是二維數(shù)據(jù)的查詢比較,圖4是三維數(shù)據(jù)上的數(shù)據(jù)查詢比較。改進(jìn)的NN算法在查詢成本上原有的NN算法開(kāi)銷和時(shí)間比較低。

        第二組實(shí)驗(yàn)對(duì)比訪問(wèn)次數(shù),經(jīng)過(guò)比對(duì)如下表1,改進(jìn)的NN算法比NN算法索引維護(hù)少,并且高的訪問(wèn)次數(shù)并不一定有高的查詢成本,因?yàn)椴樵兂杀境薎/O成本還包括CPU計(jì)算成本。

        表1 改進(jìn)前后的比對(duì)

        通過(guò)改進(jìn)NN算法,我們通過(guò)三組實(shí)驗(yàn)驗(yàn)證了改進(jìn)的NN算法的有效性,不僅可以減少I/O的訪問(wèn)次數(shù),而且減少內(nèi)存占用,減少CPU運(yùn)行時(shí)間。R-樹(shù)對(duì)數(shù)據(jù)集進(jìn)行索引,利用全局和局部查詢算法來(lái)盡可能減少SP點(diǎn),保證算法的漸進(jìn)性。達(dá)到了預(yù)期的查詢效果。

        10.3969/j.issn.1001-8972.2015.24.024

        猜你喜歡
        堆棧副本結(jié)點(diǎn)
        面向流媒體基于蟻群的副本選擇算法①
        Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
        嵌入式軟件堆棧溢出的動(dòng)態(tài)檢測(cè)方案設(shè)計(jì)*
        基于堆棧自編碼降維的武器裝備體系效能預(yù)測(cè)
        副本放置中的更新策略及算法*
        樹(shù)形網(wǎng)絡(luò)中的副本更新策略及算法*
        基于Raspberry PI為結(jié)點(diǎn)的天氣云測(cè)量網(wǎng)絡(luò)實(shí)現(xiàn)
        一種用于分析MCS-51目標(biāo)碼堆棧深度的方法
        基于DHT全分布式P2P-SIP網(wǎng)絡(luò)電話穩(wěn)定性研究與設(shè)計(jì)
        堆棧技術(shù)及其在程序設(shè)計(jì)中的靈活運(yùn)用
        日本在线观看三级视频| 精品国产免费一区二区三区香蕉| 日韩人妻无码精品久久久不卡| 亚洲国产综合人成综合网站| 亚洲AV永久无码精品表情包| av免费在线国语对白| 精品乱人伦一区二区三区| 色欲av亚洲一区无码少妇| 蜜桃在线播放免费一区二区三区| 亚洲中文乱码在线视频| 岳丰满多毛的大隂户| 97se亚洲国产综合自在线| 亚洲av在线播放观看| 麻豆国产精品久久天堂| 国产精品久久久久一区二区三区| 欧美性性性性性色大片免费的| 久久久精品免费国产四虎| 美女叉开双腿让男人插| 给我看免费播放的视频在线观看 | 99热久久只有这里是精品| 国产草逼视频免费观看| 少妇私密会所按摩到高潮呻吟| 国产精品国产午夜免费看福利| 国产在亚洲线视频观看| 白色白在线观看免费2| 人人妻人人澡人人爽超污| 99精品视频在线观看| 中文字幕偷拍亚洲九色| 国内嫩模自拍诱惑免费视频| 亚洲av午夜福利精品一区二区| 国产成人77亚洲精品www| 一区二区黄色素人黄色| 欧美精品欧美人与动人物牲交| 女人色毛片女人色毛片18| 亚洲欧洲美洲无码精品va| 中文字幕乱码日本亚洲一区二区| 国产成人久久精品一区二区三区| 国产成人77亚洲精品www| 极品精品视频在线观看| 国产成人精品2021| 日韩A∨精品久久久久|