康瑞華
(湖北工業(yè)大學(xué)計算機(jī)學(xué)院,湖北 武漢 430070)
因分布式網(wǎng)絡(luò)存儲系統(tǒng)所利用的是能夠擴(kuò)展的系統(tǒng)結(jié)構(gòu),通過多臺存儲服務(wù)器分擔(dān)存儲負(fù)荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展[1]。而處于大數(shù)據(jù)中的非平衡數(shù)據(jù)也可通過分布式的方式進(jìn)行存儲,為了能夠更好對這些數(shù)據(jù)進(jìn)行處理,所以需要利用云存儲的方式完成存儲。云存儲是在云計算技術(shù)的基礎(chǔ)上發(fā)展而來的,通過網(wǎng)上的在線存儲方式,就是將數(shù)據(jù)的存放位置放置在由第三方托管的多臺虛擬服務(wù)器,而非專屬的服務(wù)器上[2]。
不過由于非平衡大數(shù)據(jù)信息在上傳至云存儲時兼容性效果較差,數(shù)據(jù)的失真率較高,基于此本文提出一種分布式非平衡大數(shù)據(jù)兼容性云儲存方法,該方法首先利用分布式數(shù)據(jù)存儲原理,劃分為行式儲存以及列式儲存,行式儲存在讀取冗余的列時會浪費額外的磁盤I/O,而列式儲存的關(guān)鍵點是在于跨節(jié)點查詢數(shù)據(jù)時所消耗的額外網(wǎng)絡(luò)傳送時間。接著利用分類器對正負(fù)兩類樣列分類,性能都較好時,幾何均值才會較大,而負(fù)類分類準(zhǔn)確度較高、正類分類準(zhǔn)確較低時,幾何均值的結(jié)果卻并不好,以此可以對非平衡數(shù)據(jù)集分類效果進(jìn)行測評。而面對大數(shù)據(jù)云存儲時,需要加強(qiáng)對大數(shù)據(jù)訪問局部性的優(yōu)化體制,同時再引進(jìn)存儲生存期加以改進(jìn),可以提高分布式非平衡大數(shù)據(jù)云存儲的實時高效性。不過關(guān)系數(shù)據(jù)庫內(nèi),某大數(shù)據(jù)信息在被訪問的時候,會被存儲器轉(zhuǎn)移至內(nèi)存中,之后再傳送至用戶,使得所有被訪問的大數(shù)據(jù)都存儲在大數(shù)據(jù)集的緩存內(nèi)。
為確定大數(shù)據(jù)訪問時間的復(fù)雜程度,需要把數(shù)據(jù)的消耗時間記成T(r),寫數(shù)據(jù)的過程消耗的時間為T(w)。讀寫的訪問幾率分別是p(r),p(w),那么p(r)+p(w)=1。擬定訪問大數(shù)據(jù)的過程需要耗費的時間是E(T),則
E(T)=p(r)×T(r)+p(w)×T(w)
(1)
在特指的數(shù)據(jù)儲存方式中,通過式(1)可知,大數(shù)據(jù)查詢所消耗的時間是
E(O)=ωwE(w)+ωrE(r)
(2)
式中,E(w)代表寫操作耗費的時間,E(r)代表讀取數(shù)據(jù)耗費的時間,ωw代表讀操作幾率,ωr代表寫操作幾率,且ωr+ωw=1。
在大數(shù)據(jù)的訪問內(nèi),大多數(shù)的操作都是讀操作,所以ωr>>ωw。下面分析在不同數(shù)據(jù)儲存結(jié)構(gòu)下,訪問大數(shù)據(jù)讀操作的執(zhí)行速度。
(3)
經(jīng)過上述分析行式儲存與列出儲存的優(yōu)劣點,磁盤讀取數(shù)據(jù)的速度有
(4)
額外網(wǎng)絡(luò)傳送數(shù)據(jù)消耗的網(wǎng)絡(luò)帶寬有
(5)
經(jīng)過上述行式儲存與列式儲存構(gòu)造的優(yōu)劣點分析,行式儲存關(guān)鍵在讀取不需要的列時,會浪費了額外的磁盤I/O,而列式儲存的關(guān)鍵點在于跨節(jié)點搜索數(shù)據(jù)時所耗費的額外網(wǎng)絡(luò)傳輸時間。其最優(yōu)質(zhì)的情況是可以避免額外的磁盤I/O消耗與網(wǎng)絡(luò)傳送消耗。結(jié)合式(4)與式(5)可知,行列儲存構(gòu)造在讀取數(shù)據(jù)與網(wǎng)絡(luò)消耗上較比如表1所示[4]。
表1 行列儲存和列式儲存讀取速度對比
根據(jù)分布式系統(tǒng)數(shù)據(jù)存儲原理,分類非平衡數(shù)據(jù)集。
由于大數(shù)據(jù)中存在許多非平衡的數(shù)據(jù),這些數(shù)據(jù)在對進(jìn)行存儲的過程中,需要對其進(jìn)行分類,以及才能夠使這些非平衡數(shù)據(jù)在進(jìn)行存儲時其兼容性達(dá)到最佳的效果。分類問題中對分類性能常用的測評標(biāo)準(zhǔn)是精準(zhǔn)度。使用精準(zhǔn)度來衡量平衡數(shù)據(jù)集的分類性能是一種較好的方法,但只是用精準(zhǔn)度來測評非平衡數(shù)據(jù)集分類性能并不合適[5]。
例如:一種非平衡數(shù)據(jù)集內(nèi)的正類樣例只占5%,而負(fù)例占95%,若分類器預(yù)測每一種位置樣例都是負(fù)類,則所有數(shù)據(jù)的分類精準(zhǔn)度能夠達(dá)到95%,這樣的結(jié)果看上去是非常好的數(shù)值,但是現(xiàn)實中分類器對正類的分類效果極差,識別率是0。所以,對非平衡數(shù)據(jù)集的分類效果測評方法,需要找到其它的測評標(biāo)準(zhǔn)[6]。
以本文研究為例,擬定C類是正類,NC代表負(fù)類,憑借分類器的預(yù)測類標(biāo)號現(xiàn)實中的類標(biāo)號,存在如表2的混合矩陣。
表2 二元分類問題的混合矩陣
(6)
(7)
Re代表召回率,其是被分類器分類準(zhǔn)確的正類樣例占初始數(shù)據(jù)集內(nèi)全部正類樣例的比例;Pr代表準(zhǔn)確度[7],其是被分類器分類成正類的樣例和實際全部正樣例的比例。搜索準(zhǔn)確度與召回率最大化的分類器模型是非平衡數(shù)據(jù)分類的關(guān)鍵人物之一。
所以,本文融入一種度量F,定位其為
(8)
式中,R代表召回率,P代表準(zhǔn)確度。經(jīng)常F的值越高,就會認(rèn)為分類器的分類效果越好。
幾何均值G-mean代表另外一種使用較為廣泛的非平衡數(shù)據(jù)集分類效果測評標(biāo)準(zhǔn)[8]。其是測評非平衡數(shù)據(jù)集上分類器效果的一個關(guān)鍵指標(biāo)。
本文定義
(9)
(10)
本文把a(bǔ)c設(shè)為正類的分類準(zhǔn)確度,把a(bǔ)b設(shè)為負(fù)類的分類準(zhǔn)確度。
G-mean定義為
(11)
分類器在對正負(fù)的兩類樣列分類性能都相對較好時,G-mean值才會較大,而在負(fù)類的分類準(zhǔn)確度的較高時,其正類的分類準(zhǔn)確的較低時,G-mean的結(jié)果就并不好。
ROC曲線同樣是一種使用廣泛的非平衡數(shù)據(jù)集分類效果的測評方法。ROC曲線是描述TPR和FPR之間關(guān)系的一種圖像化方式,如圖1所示。
圖1 ROC曲線示意圖
ROC圖中所表示的是一種隨機(jī)性的分類模型,曲線越是接近左上角,就會認(rèn)為分類器的分類效果越好。所以,在顯示使用中,經(jīng)常計算AUC面積來測評分類模型;AUC面積越大就說明分類器的模型越好,云存儲兼容性就越佳。
通過上述分類過程,有效提升存儲系統(tǒng)的兼容性,基于上述,進(jìn)行非平衡大數(shù)據(jù)兼容存儲。
大數(shù)據(jù)云存儲算法,缺乏非平衡大數(shù)據(jù)訪問局部性的優(yōu)化體制,需要引進(jìn)大數(shù)據(jù)存儲的生存期將其改進(jìn),還能夠提高云存儲方法實時高效性。而在關(guān)系數(shù)據(jù)庫內(nèi),某信息在被訪問的時候,大數(shù)據(jù)則會被存儲器轉(zhuǎn)移至內(nèi)存中,之后在傳送至用戶,所有被訪問的數(shù)據(jù)都存儲在數(shù)據(jù)集緩存內(nèi),應(yīng)該先給出數(shù)據(jù)云存儲的生存期計算公式,即
T=αNδ+βNm
(12)
式中,Nδ代表是作用于描述再次進(jìn)行訪問的數(shù)據(jù)緩存概率,Nm代表作用于新用戶對數(shù)據(jù)緩存相進(jìn)行訪問的概率,α與β則表示兩個隨機(jī)的數(shù)值。
其關(guān)系數(shù)據(jù)庫和傳統(tǒng)數(shù)據(jù)庫之間存在著較大的差異,用戶對于數(shù)據(jù)搜索申請相對較為分散,連續(xù)進(jìn)行數(shù)據(jù)的申請幾率較小,不過在比較密度是對應(yīng)用戶修改申請的數(shù)據(jù),主要是集中在數(shù)據(jù)的收集初始階段,因此相對于求解的大數(shù)據(jù)緩存生存流程內(nèi),應(yīng)該先對修改操作、只讀以及新建進(jìn)行區(qū)分,以下是Nδ的計算公式
(13)
式中,t代表作用在關(guān)系數(shù)據(jù)庫內(nèi)數(shù)據(jù)進(jìn)行緩存以后,所經(jīng)歷的時間周期ΔT數(shù)量,Nδr代表作用在只讀訪問的數(shù)據(jù)的緩存項次數(shù),Nδm代表作用在修改數(shù)據(jù)緩存項的次數(shù),Nδe代表作用在是否是新建的數(shù)據(jù),φ(φ≥1)和γ(≥1)表示兩個參數(shù),而Nδe的取值范圍是
(14)
大數(shù)據(jù)緩存項在被新用戶訪問的概率為Nm,具體公式為
(15)
式中,pi的取值為
(16)
數(shù)據(jù)的緩存空間是一定的,在所需要對數(shù)據(jù)進(jìn)行緩存時,若緩存到達(dá)一定上限時,即能夠調(diào)出某數(shù)據(jù)項,下列是給出的非平衡大數(shù)據(jù)緩存調(diào)出過程:
1)當(dāng)數(shù)據(jù)別調(diào)入緩存時,應(yīng)該先利用式(12)求出T,以此判斷時新建操作還是讀入操作,利用式(14)獲取Nδe。
2)對于關(guān)系數(shù)據(jù)庫在運轉(zhuǎn)t時間以后可根據(jù)式(13)與式(15),更新生存T值,同時再根據(jù)T值將元數(shù)據(jù)項進(jìn)行排列。
3)在數(shù)據(jù)的緩存到達(dá)一定數(shù)值時,要找出生存期低于閾值的Tm,而Nδe與Nδm的值為0,與此同時,T值最小大數(shù)據(jù)緩存項,會被寫回至磁盤內(nèi)。
4)若數(shù)據(jù)的緩存數(shù)據(jù)達(dá)到上限,并且不存在生存期低于閾值Tm的大數(shù)據(jù),即需要刪除Nδe與Nδm值為0,并且T值最小的大數(shù)據(jù)緩存項,寫回磁盤。
5)若大數(shù)據(jù)緩存一旦到達(dá)上限,并且不存在Nδe與Nδm為0的大數(shù)據(jù)緩存項,即刪除T值的最小緩存項。
結(jié)合上述過程,實現(xiàn)分布式系統(tǒng)數(shù)據(jù)存儲,為檢驗本文方法的有效性及可行性,需進(jìn)行仿真。
實驗過程中,本文將采用兩臺PC服務(wù)器作為本次仿真平臺,為避免采集數(shù)據(jù)產(chǎn)生差異,設(shè)置兩臺計算機(jī)的操作系統(tǒng)均為Ubuntu11.10 64位,處理器選用Intel 酷睿i7 6950X,此外,Hadoop為1.0.0版本,HBase版本為0.90.5,硬盤與內(nèi)存大小分別為2T、16G。本文將采用UCI Machine Learning Repository作為實驗測試數(shù)據(jù)集,獲取2500條數(shù)據(jù),并通過構(gòu)建專業(yè)的數(shù)據(jù)分析軟件,以減少數(shù)據(jù)分析復(fù)雜程度。 在上述參數(shù)設(shè)置的基礎(chǔ)上進(jìn)行仿真。
為驗證本文方法的優(yōu)越性能,存儲數(shù)據(jù)格式為自加數(shù)。通過對有效數(shù)據(jù)的標(biāo)記情況,而且確定存儲數(shù)據(jù)的丟失情況,圖2為不同方法的有效數(shù)據(jù)標(biāo)記情況。
圖2 數(shù)據(jù)分析界面
標(biāo)記的數(shù)量越多,則表示丟失概率越大。分析圖3可知,對大量數(shù)據(jù)的分析,文獻(xiàn)[1]與文獻(xiàn)[2]方法標(biāo)記數(shù)量過多,丟失概率較大。而本文方法能夠精準(zhǔn)的標(biāo)記出有效數(shù)據(jù),與原始存儲有效數(shù)據(jù)一致。由此可知本文方法不僅保證數(shù)據(jù)的完整性,還有較高的數(shù)據(jù)讀取精度。這是由于在一定的數(shù)據(jù)緩存空間中,進(jìn)行所需數(shù)據(jù)緩存時,采用了非平衡大數(shù)據(jù)緩存調(diào)出方法,提高了存儲數(shù)據(jù)的標(biāo)記精度。
為了驗證分布式非平衡大數(shù)據(jù)兼容性云存儲方法性能,通過對比文獻(xiàn)[1]與文獻(xiàn)[2]方法以此進(jìn)行多次的仿真。為了確保實驗的有效性,首先對數(shù)據(jù)庫內(nèi)的失真失效儲存數(shù)據(jù)情況進(jìn)行檢測,具體的圖像如圖3所示。
圖3 數(shù)據(jù)存儲過程失真率檢測
依據(jù)圖3可以看出,在隨著存儲數(shù)據(jù)量的增加,其傳統(tǒng)方法的數(shù)據(jù)存儲失真情況顯著增加,并且坡度比較大,以此說明文獻(xiàn)[1]與文獻(xiàn)[2]的數(shù)據(jù)存儲方法很難對相對較多的非平衡大數(shù)據(jù)兼容,不能夠滿足目前云存儲要求。本文方法的數(shù)據(jù)存儲失真率呈現(xiàn)折線增長的趨勢,并且數(shù)據(jù)相對較為平穩(wěn),以此推斷本文能夠更好對非平衡大數(shù)據(jù)兼容存儲。并且通過檢測結(jié)果,證明本文方法數(shù)據(jù)存儲失真率將會低于45%以下,對比于傳統(tǒng)方法存儲效果更加優(yōu)秀,且失真率較低。這是由于本文方法進(jìn)行存儲設(shè)計時,分析行式儲存與列出儲存,設(shè)置磁盤讀取數(shù)據(jù)速度,避免額外的磁盤I/O消耗與網(wǎng)絡(luò)傳送消耗,降低數(shù)據(jù)失真率。
設(shè)置在相同條件下,文獻(xiàn)[1]與文獻(xiàn)[2]的非平衡大數(shù)據(jù)兼容存儲方法與本文方法進(jìn)行存儲效果測試,具體的對比信息如表3所示。
表3 云存儲數(shù)據(jù)的兼容效果檢測數(shù)據(jù)對比
通過上表能夠看出,文獻(xiàn)[1]與文獻(xiàn)[2]的數(shù)據(jù)存儲兼容性要遠(yuǎn)遠(yuǎn)的低于本文方法,并且本文方法在數(shù)據(jù)的處理時間、并行處理效率以及數(shù)據(jù)存儲方面的優(yōu)勢都要比傳統(tǒng)方法要高。具體的三種方法對比效果圖,如圖4所示。
圖4 數(shù)據(jù)兼容性檢測效果對比
依據(jù)上圖的對比結(jié)果能夠看出,本文方法能夠很好的對非平衡大數(shù)據(jù)進(jìn)行云存儲,其兼容較高,失真率較低。這是由于本文方法在數(shù)據(jù)存儲前對非平衡的數(shù)據(jù)進(jìn)行分類,以及才能夠使這些非平衡數(shù)據(jù)在進(jìn)行存儲時其兼容性達(dá)到最佳的效果。
因為非平衡大數(shù)據(jù)信息在上傳至云存儲時兼容性效果較差,數(shù)據(jù)的失真率較高,基于此本文提出一種分布式非平衡大數(shù)據(jù)兼容性云儲存方法,該方法是首先利用分布式的數(shù)據(jù)存儲原理,分成行式儲存以及列式儲存,行式儲存在冗余進(jìn)行讀取時會浪費額外磁盤I/O,而列式儲存是通過跨節(jié)點查詢數(shù)據(jù)時會消耗額外網(wǎng)絡(luò)傳送時間。然后依據(jù)分類器對正負(fù)兩類樣列的記性分類,其性能較好時,其幾何均值才會較大。以此可以對非平衡大數(shù)據(jù)進(jìn)行分類,使其在進(jìn)行云存儲時兼容性更好,而相對于大數(shù)據(jù)進(jìn)行云存儲的方法,只是缺乏對大數(shù)據(jù)的訪問局部性的優(yōu)化體制,同時再引進(jìn)大數(shù)據(jù)存儲的生存期將其改進(jìn),以此提高大數(shù)據(jù)云存儲的效果。最終通過實驗證明。本文方法相對于傳統(tǒng)方法兼容性更好,失真率較低。