陳志華 劉曉勇
摘 要: 傳統(tǒng)的云計算Hadoop 分布式多層體系架構(gòu)數(shù)據(jù)檢索模塊難以滿足云計算下大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索需求,因此采用需要結(jié)合存儲非結(jié)構(gòu)化大數(shù)據(jù)的特點,塑造新的集群的基礎(chǔ)環(huán)境,通過云、端并重的形式,實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索。引入一種非結(jié)構(gòu)大數(shù)據(jù)索引框架,作為非結(jié)構(gòu)化數(shù)據(jù)庫,當成數(shù)據(jù)檢索引擎,改進云計算下大數(shù)據(jù)非結(jié)構(gòu)的檢索服務(wù),給出檢索技術(shù)在檢索非結(jié)構(gòu)化大數(shù)據(jù)過程中的關(guān)鍵代碼。實驗結(jié)果表明,所設(shè)計系統(tǒng)在檢索云計算下非結(jié)構(gòu)大數(shù)據(jù)的過程中,具有較高的查準率和較低的檢索時間,可實現(xiàn)非結(jié)構(gòu)云數(shù)據(jù)的穩(wěn)定性檢索。
關(guān)鍵詞: 云計算; 大數(shù)據(jù); 非結(jié)構(gòu)穩(wěn)定性檢索; 數(shù)據(jù)檢索引擎
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2016)06?0058?04
Methods of unstructured big data stability retrieval in cloud computing
CHEN Zhihua, LIU Xiaoyong
(Guangdong Polytechnic Normal University, Guangzhou 510665, China)
Abstract: It is difficult for the traditional cloud computing Hadoop distributed multi?layer architecture data retrieval module to meet the demand of the unstructured big?data stability retrieval in the cloud computing, so it is necessary to combine the characteristics of the unstructured large data storage, shape a new clustering basic environment, and pay equal attention to the form of cloud and end, to realize the stability retrieval of the unstructured big data. A big data index framework is taken as a unstructured database and as a data retrieval engine to improve the unstructured data retrieval service in cloud computing, and give the key code of the retrieval in the process of unstructured big data retrieval. Experiment result shows that the designed system, in the process of unstructured big data retrieval in the cloud computing, has high precision and short retrieval time, and can realize the stability retrieval of the structured cloud data.
Keywords: cloud computing; big data; unstructured stability retrieve; data retrieval engine
0 引 言
隨著云計算技術(shù)的快速發(fā)展,不同類型服務(wù)器數(shù)據(jù)信息呈現(xiàn)爆炸式增長,市場迫切需要先進的大規(guī)模云計算數(shù)據(jù)存儲和檢索技術(shù)[1?3]。云計算下大數(shù)據(jù)檢索的研究和應(yīng)用順應(yīng)了市場的發(fā)展需求。當前的云計算下海量數(shù)據(jù)中,有高于80%的數(shù)據(jù)都是非結(jié)構(gòu)化數(shù)據(jù),但是,當前的信息關(guān)聯(lián)檢索主要依靠的是建立結(jié)構(gòu)化的關(guān)聯(lián)規(guī)則,無法滿足云信息檢索需求,尋求有效方法快速從中檢索到有價值信息,成為相關(guān)學者研究的熱點[4]。
文獻[5]提出了熱度敏感的非結(jié)構(gòu)化數(shù)據(jù)檢索排名算法,但是該方法對數(shù)據(jù)的屬性特征具有較高的敏感性,存在較高的局限性。文獻[6]分析了基于Lucene算法的文件全文檢索解決方案,可快速有效地分析出不同結(jié)構(gòu)數(shù)據(jù)的信息,但是存在耗能高和檢索效率低的缺陷。文獻[7]分析的分布式索引方法采用多節(jié)點備份實現(xiàn)系統(tǒng)檢索,但是當備份的節(jié)點同時發(fā)生故障,則無法恢復(fù)失效節(jié)點上的索引,導致檢索精度降低。文獻[8]提出了以索引服務(wù)為基礎(chǔ)的本地索引方法,直接為檢索服務(wù)的方法,確保檢索同索引集群緊密結(jié)合,極大提高了該種方法的容錯性,但是同時也增加了該種方法的復(fù)雜性。
為了解決上述分析的問題,本文以云計算Hadoop 分布式多層體系架構(gòu)為基礎(chǔ),分析存儲非結(jié)構(gòu)化大數(shù)據(jù)的特點,將非結(jié)構(gòu)大數(shù)據(jù)索引框架當成非結(jié)構(gòu)化數(shù)據(jù)庫,提供云計算下大數(shù)據(jù)非結(jié)構(gòu)的檢索服務(wù)。實驗結(jié)果說明,所設(shè)計系統(tǒng)在檢索云計算下非結(jié)構(gòu)大數(shù)據(jù)的過程中,具有較高的查準率和較低的檢索時間,可實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索。
1 云計算下大數(shù)據(jù)非結(jié)構(gòu)的架構(gòu)分析
1.1 Hadoop架構(gòu)的非結(jié)構(gòu)化分析
云計算下存儲的大數(shù)據(jù)種類較多,都是以非結(jié)構(gòu)檢索關(guān)系存在的,總體架構(gòu)如圖1所示。該檢索平臺依托云計算,云平臺采用了 Hadoop 分布式多層體系架構(gòu)存儲非結(jié)構(gòu)化大數(shù)據(jù),并塑造集群的基礎(chǔ)環(huán)境,通過云、端并重的形式,實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索。
當前的云計算下大數(shù)據(jù)非結(jié)構(gòu)檢索系統(tǒng)通過互聯(lián)網(wǎng)采集云計算下的海量數(shù)據(jù),通過后臺系統(tǒng)實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的自主加工和統(tǒng)計操作。該平臺還能夠統(tǒng)計分析熱點信息。在獲得大量非結(jié)構(gòu)數(shù)據(jù)后,系統(tǒng)根據(jù)檢索業(yè)務(wù)策略定義,在檢索引擎的配合下,完成大數(shù)據(jù)非結(jié)構(gòu)檢索的存儲服務(wù)。
1.2 云存儲下數(shù)據(jù)的非結(jié)構(gòu)特點分析
上述系統(tǒng)總體架構(gòu)采用多層體系架構(gòu)設(shè)計,并依據(jù)多層架構(gòu)的基礎(chǔ)服務(wù)進行塑造。在多層體系架構(gòu)下,通過云、端并重的形式,實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性存儲,存儲過程程序非結(jié)構(gòu)的特點如下:
(1) 用戶檢索終端數(shù)據(jù)的非結(jié)構(gòu)化。面向終端檢索用戶,通過Web門戶應(yīng)用以及移動終端 APP為用戶提供大數(shù)據(jù)檢索的服務(wù)中,因為用戶信息的多樣性,無法形成穩(wěn)定的結(jié)構(gòu)。
(2) 業(yè)務(wù)應(yīng)用層數(shù)據(jù)的非結(jié)構(gòu)化。業(yè)務(wù)應(yīng)用層服務(wù)為系統(tǒng)提供各種應(yīng)用程序,系統(tǒng)以服務(wù)的方式對外提供大數(shù)據(jù)業(yè)務(wù)支撐,同時將該部分的服務(wù)部署在云平臺中。用戶檢索終端應(yīng)用通過訪問云平臺中的業(yè)務(wù)應(yīng)用層服務(wù),完成云計算下大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索業(yè)務(wù)。但是,由于應(yīng)用程序在種類和開發(fā)過程中的差異性愈來愈大,導致該層數(shù)據(jù)也存在較大的非結(jié)構(gòu)化的特點。
(3) 平臺服務(wù)層數(shù)據(jù)的非結(jié)構(gòu)化。平臺服務(wù)層為業(yè)務(wù)應(yīng)用層和基礎(chǔ)資源層提供相關(guān)的服務(wù),包括媒體處理服務(wù)和調(diào)度、流程引擎服務(wù)。平臺服務(wù)層中包含關(guān)鍵的大數(shù)據(jù)檢索引擎。但是隨著檢索模式的不斷增加,該層數(shù)據(jù)也存在較大的非結(jié)構(gòu)化的特點。
(4) 基礎(chǔ)資源層數(shù)據(jù)的非結(jié)構(gòu)化。基礎(chǔ)資源服務(wù)層是云平臺的基礎(chǔ)設(shè)備層,通過計算資源服務(wù)、存儲資源服務(wù)以及網(wǎng)絡(luò)資源服務(wù),通過邏輯資源池的方式實現(xiàn)云平臺的調(diào)控。該檢索平臺中的基礎(chǔ)資源服務(wù),主要指云平臺的基礎(chǔ)資源,包括云存儲、虛擬計算資源以及操作系統(tǒng)等基礎(chǔ)部件,隨著基礎(chǔ)設(shè)備的不斷增加,設(shè)備數(shù)據(jù)之間也無法形成穩(wěn)定的結(jié)構(gòu)特征,形成非結(jié)構(gòu)化的特點。
2 云計算下大數(shù)據(jù)非結(jié)構(gòu)的檢索實現(xiàn)
在云計算下,差異大數(shù)據(jù)非結(jié)構(gòu)檢索是一個復(fù)雜的過程,通過第1節(jié)的分析可以看出,平臺中存儲著海量非結(jié)構(gòu)化數(shù)據(jù)。傳統(tǒng)的依據(jù)結(jié)構(gòu)化索引的方法無法滿足非結(jié)構(gòu)數(shù)據(jù)穩(wěn)定的檢索要求。本文通過構(gòu)建非結(jié)構(gòu)化大數(shù)據(jù)的分布式索引系統(tǒng),可滿足云計算下非結(jié)構(gòu)大數(shù)據(jù)的穩(wěn)定性檢索需求。
2.1 設(shè)計非結(jié)構(gòu)化數(shù)據(jù)的索引框架
通過塑造分布式非結(jié)構(gòu)化大數(shù)據(jù)索引框架可以對非結(jié)構(gòu)數(shù)據(jù)建立類似于結(jié)構(gòu)化的框架,設(shè)計的框架如圖2所示。該分布式索引框架包括索引集群、檢索集群以及分布式文件系統(tǒng)。
2.2 索引集群的引入
在非結(jié)構(gòu)框架下,設(shè)計索引集群可塑造分布式大數(shù)據(jù)非結(jié)構(gòu)檢索的索引。索引集群采用Master?Slave結(jié)構(gòu),由一個索引主節(jié)點以及多個索引節(jié)點構(gòu)成。通過該結(jié)構(gòu)能夠?qū)⑺饕蝿?wù)分割到不同的索引節(jié)點中,確保不同的索引節(jié)點能夠并行塑造索引,增強系統(tǒng)對云計算下非結(jié)構(gòu)數(shù)據(jù)的操作性能。索引集群服務(wù)于批量和增量索引模式。系統(tǒng)保存非結(jié)構(gòu)數(shù)據(jù)后會向索引主節(jié)點傳遞增量式索引任務(wù)的消息。索引主節(jié)點按照該消息中的數(shù)據(jù)特征以及內(nèi)容,使用索引分片方案,判斷相應(yīng)的數(shù)據(jù)歸屬于索引分片,再在分布式索引消息隊列中存儲相關(guān)的消息。
不同結(jié)構(gòu)的數(shù)據(jù)索引節(jié)點相互獨立,并從消息隊列中采集消息。若采集的消息屬于相應(yīng)索引節(jié)點,則對消息進行相關(guān)的檢索,否則將消息反饋到對應(yīng)的索引節(jié)點再進行操作。若對應(yīng)的操作索引節(jié)點無法正常運行,則通過索引主節(jié)點完成消息的操作,并將新的索引節(jié)點配置給對應(yīng)消息。索引集群能夠增強總體系的吞吐量。
2.3 非結(jié)構(gòu)化下的檢索集群的設(shè)計
在非結(jié)構(gòu)數(shù)據(jù)框架下,檢索集群包含檢索主節(jié)點、檢索節(jié)點以及檢索客戶端。檢索集群通過Master?Slave結(jié)構(gòu)確保索引文件高效率的部署到不同的檢索節(jié)點中,增強數(shù)據(jù)檢索服務(wù)效率。檢索節(jié)點依據(jù)Master?Slave結(jié)構(gòu)能夠獲取總體檢索集群中不同檢索節(jié)點的負載情況。當用戶通過檢索客戶端發(fā)出數(shù)據(jù)檢索申請后,檢索主節(jié)點將按照不同檢索節(jié)點的負載情況,獲取一個節(jié)點列表,并將該列表反饋給檢索客戶端,檢索客戶端依據(jù)獲取的檢索節(jié)點列表進行檢索。用戶采用檢索客戶端可申請檢索,并獲取相應(yīng)的檢索結(jié)果。
2.4 云計算下大數(shù)據(jù)非結(jié)構(gòu)化的檢索代碼
當前多使用SQL全文檢索技術(shù)實現(xiàn)云計算下大數(shù)據(jù)非結(jié)構(gòu)化的檢索設(shè)計,詳細過程為:啟動SQL Server的full text search全球檢索服務(wù),設(shè)置數(shù)據(jù)庫服務(wù)器的默認語言為2052(中文);運行SQL語句啟用全文檢索:Executesp_fulltext_StructDabase‘enable;選擇“全文索引”中的“定義全文索引”,融入全文檢索向?qū)υ捒颍x擇將要對其進行全文索引的字段和全文目錄。
重新啟動SQL Server則能夠采用檢索語句CONTAINS以及FREETEXT對所設(shè)置的表進行查詢。其中,CONTAINS語句可在表的全部列中搜索,詞或短語以及同對應(yīng)詞相近的詞等;FREETEXT語句可在一個表的全部列或指定列中搜索一個自由文本各種的字符串,并返回同該字符串匹配的數(shù)據(jù)行。
如在Doc表中查找文件內(nèi)容中包含“暴恐”,所采用的SQL語句為:
SELECT*FROM Doc Where CONTAINS(DocumentConnotation ,′暴恐′)
檢索非結(jié)構(gòu)化數(shù)據(jù)的界面中,輸入關(guān)鍵字,單擊“檢索”按鈕,則可將文件內(nèi)容中包含該關(guān)鍵字的文件名、文件類型顯示處理。實現(xiàn)文檔中關(guān)鍵字檢索的主要代碼為:
Public StructDaTable StructDaSearch(string keyword,string steConn){string sql= "select * from doc where CONTAINS (DocumentConten,""+key?word+"")";
SqlStructDaAdaper da=new SqlStructDaAdaper(sql,strConn);
StructDaSer da=new StructDaSet();
da.Fill(da); return da.Tables[0];}
若需打開某文檔,則對總體文檔進行詳細分析,在.net環(huán)境中,通過設(shè)置Response的ConnotationSpecies屬性和調(diào)用BinaryWrite方法則能夠站在瀏覽器中顯示相關(guān)的文檔內(nèi)容。顯示W(wǎng)ord文檔以及Excel文檔內(nèi)容的關(guān)鍵代碼為:
3 實驗分析
實驗采用云計算非結(jié)構(gòu)NUS數(shù)據(jù)集,將該數(shù)據(jù)集中低維特征提取出來的視覺單詞特征,當成測試集合。本實驗從該非結(jié)構(gòu)數(shù)據(jù)集中隨機抽取100萬個特征作為樣本訓練集合。實驗采用檢索時間和查準率兩個指標評估本文系統(tǒng)和平均分配檢索系統(tǒng)的優(yōu)劣。
查準率=檢索結(jié)果中相關(guān)的結(jié)果總數(shù)/檢索結(jié)果的總數(shù)
為了得到比較全面的實驗結(jié)果,實驗選擇了10組實驗,每組實驗的文件數(shù)分別為10萬,20萬,30萬,40萬,50萬,60萬,70萬,80萬,90萬以及100萬。再計算出檢索時間的平均值以及查準率的平均值對各個系統(tǒng)進行評價。
3.1 以查準率為評估指標
實驗先以查準率作為評價指標進行實驗。在每種實驗系統(tǒng)中,依次輸入不同檢索目標進行檢索,并設(shè)置最長搜索時間為3 s進行實驗。統(tǒng)計不同檢索目標的查準率,并運算平均值。再比較各系統(tǒng)的查準率。本文方法下系統(tǒng)和平均分配系統(tǒng)的查準率對比如圖3所示。
分析圖3可得,本文方法下的查準率明顯好于平均分配檢索系統(tǒng),說明使用的本文方法進行大數(shù)據(jù)非結(jié)構(gòu)的檢索具有較強的優(yōu)勢。
3.2 以檢索時間為評估指標
實驗依據(jù)檢索平均時間為指標評估不同的檢索系統(tǒng)。在兩個實驗系統(tǒng)中,分別輸入不同的檢索目標進行檢索,同時設(shè)置不同的檢索結(jié)果數(shù)進行多次實驗。運算不同系統(tǒng)中差異結(jié)果下的檢索平均時間,再比較兩個系統(tǒng)的檢索時間。在本文系統(tǒng)和平均分配系統(tǒng)中對10 個實驗?zāi)繕诉M行檢索,統(tǒng)計各目標在兩個系統(tǒng)中的檢索時間,運算出平均檢索時間,如圖4所示。
從圖4中可以看出,平均分配檢索系統(tǒng)在平均搜索時間上高于本文系統(tǒng),則證實應(yīng)用了本文檢索系統(tǒng)在查詢時間和查準率這兩個評價指標上,都優(yōu)于傳統(tǒng)的平均分配系統(tǒng)。
上面的實驗比較可以看出,本文檢索系統(tǒng)對非結(jié)構(gòu)數(shù)據(jù)的性能優(yōu)于傳統(tǒng)的平均分配系統(tǒng)。說明本文系統(tǒng)可實現(xiàn)云計算下大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索,具有較高的應(yīng)用價值。
4 結(jié) 語
本文以云計算為基礎(chǔ),采用Hadoop 分布式多層體系架構(gòu)存儲非結(jié)構(gòu)化大數(shù)據(jù),并塑造集群的基礎(chǔ)環(huán)境,通過云、端并重的形式,實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索。將非結(jié)構(gòu)大數(shù)據(jù)索引框架作為非結(jié)構(gòu)化數(shù)據(jù)庫,當成數(shù)據(jù)檢索引擎,提供云計算下大數(shù)據(jù)非結(jié)構(gòu)的檢索服務(wù),該分布式索引框架包括索引集群、檢索集群以及分布式文件系統(tǒng)。給出SQL Server 2008的全文檢索技術(shù)在檢索非結(jié)構(gòu)化大數(shù)據(jù)過程中的關(guān)鍵代碼。實驗結(jié)果說明,所設(shè)計系統(tǒng)在檢索云計算下非結(jié)構(gòu)大數(shù)據(jù)的過程中,具有較高的查準率和較低的檢索時間,可實現(xiàn)大數(shù)據(jù)非結(jié)構(gòu)的穩(wěn)定性檢索。
參考文獻
[1] 中國互聯(lián)網(wǎng)絡(luò)信息中心.中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告[R].北京:CNNIC,2014.
[2] 車曉蕙,周立民,陳鋼,等.大數(shù)據(jù)為王第三次流通革命在望[N].經(jīng)濟參考報,2013?09?11(5).
[3] 李淑芝,劉鋒,楊書新.基于云仿真的Web服務(wù)選擇研究[J].計算機應(yīng)用研究,2013,30(4):1069?1071.
[4] 杜蕓蕓.一種面向糾刪碼技術(shù)的云存儲可靠性機制[J].計算機應(yīng)用與軟件,2014,31(2):312?316.
[5] 林菲,張萬軍,孫勇.一種分布式非結(jié)構(gòu)化數(shù)據(jù)副本管理模型[J].計算機工程,2013,39(4):36?38.
[6] 翟巖龍,羅壯,楊凱,等.基于Hadoop的高性能海量數(shù)據(jù)處理平臺研究[J].計算機科學,2013,40(3):100?103.
[7] 韓晶,宋美娜,鄂海紅,等.HotRank:熱度敏感的非結(jié)構(gòu)化數(shù)據(jù)檢索排名算法[J].計算機應(yīng)用研宄,2013,30(5):1306?1308.
[8] 郭永利,盧穎穎.基于Lucene對文件全文檢索的研究與應(yīng)用[J].微型電腦應(yīng)用,2014,31(1):51?54.