汪 洋,崔 煒
(1.烽火通信科技股份有限公司 南京研發部,江蘇 南京 210019;2.武漢郵電科學研究院 湖北 武漢 430000)
基于Solr的混合介質存儲在淘寶系統中的研究與應用
汪 洋1,崔 煒2
(1.烽火通信科技股份有限公司 南京研發部,江蘇 南京 210019;2.武漢郵電科學研究院 湖北 武漢 430000)
DT時代已經來臨,開源搜索引擎已經成為各大公司檢索海量數據的主流,其中Solr以其支持多種格式索引,高效性,高靈活性,高可擴展性,深受廣大愛好者以及各大公司青睞,本文基于提高Solr檢索速度和對數據管理便捷性,提出了混合介質存儲分盤管理查詢并且設置優先級異步并發的改進方案,通過在淘寶用戶評論檢索中的研究與應用,證實了方案能夠極大優化了性能并且提高檢索速度。
Lucene;Solr;混合介質存儲存儲;數據的冷熱;淘寶用戶評論檢索系統
信息的爆炸式增長和互聯網技術的與日俱新催生了數據時代(DT時代)的來臨,結構化數據和非結構化數據存儲檢索已經成為了各大公司的關注熱點。Solr作為Apache Lucene項目的開源的全文檢索框架,其主要功能有全文檢索、命中標示、分面搜索、動態聚類、數據庫集成、以及富文本的處理(例如Word、PDF),以其強大功能和開源性廣受使用者追捧,但是Solr在存儲數據時會沒有利用好存儲媒介,現在廣泛是將Solr的數據存儲在SATA盤中,因為SATA盤廉價適合海量存儲成本低,但是這樣存儲檢索的性能會隨之降低,本文基于此提出SATA,SAS,SSD盤混合存儲,根據業務需求,將數據分為“熱數據”,“溫數據”和“冷數據”,根據查詢頻率選擇合適的盤進行存儲,在解析并發查詢后設置相對應的優先級加入緩存隊列以此來提升并發查詢效率。最后在淘寶用戶檢索系統這個實例中驗證此方案的正確性和性能優越性。
1.1 Lucene介紹
Lucene最初是由Doug Cutting編寫的,是一款高性能,可擴展的信息檢索工具庫。它由JAVA實現,能夠讓你的應用程序不用了解復雜的索引和搜索實現的情況下,通過調用其簡單的API實現從文本中解析出來的數據進行索引和搜素。并且Lucene不需要關心數據來源格式甚至不關心數據語種,只要把它轉換為文本格式即可,同時Lucene可以用來索引存儲在數據庫中的數據。
1.2 Solr介紹
Solr是基于 Lucene的開源的全文檢索框架,同樣由Java實現,用戶可以通過HTTP請求,向搜索引擎服務器提交XML文件,然后生成索引。也可以通過Http Get操作提出查詢請求,并且得到XML格式的返回結果。
Solr是Lucene的擴展,并且提供了比Lucene更為豐富的查詢語句,對異步并發查詢進行優化。
1.3 SATA,SAS,SSD 盤的選擇
SATA盤,SAS盤,SSD盤都是常用的磁盤,SATA盤價格便宜,是使用最廣泛的磁盤,如今SOLR底層數據存儲都依賴SATA盤接口,一塊SATA盤1T到2T之間,價格每G才0.7元,價格極其低廉,非常適合存儲海量數據,但是其并發查詢性能差,高并發查詢很能滿足需求的響應速度。所以STAT盤用來存儲“冷數據”比較合適,“冷數據”即為查詢期間比較難用到的數據。
SAS盤是SATA盤的升級版,采用了串行技術以獲取更高的傳輸速度,并且改善了存儲性能,可用性和擴充性,同時完全兼容SATA盤?,F階段,SAS盤是機械硬盤中速度最快的了,比起傳統機械硬盤速度顯著提升,但是它同時有自身的不足,SAS盤同樣一塊是1T到2T大小,海量存儲數據非常方便,但是它的價格比較貴,比SATA盤貴了一倍還多,但是鑒于它優秀的性能,存儲數據,比較支持高并發的能力,SAS盤適合存儲“溫數據”,“溫數據”即為查詢頻率比較頻繁的數據。
SSD盤又名“固態硬盤”,它摒棄了傳統的磁介質,采用了電子存儲介質進行數據存儲和讀取,突破了傳統的機械硬盤的瓶頸。擁有驚人的500MB/S的讀寫速度,I/0性能是SATA盤和SAS盤的40到60倍,同時具有低功率無噪音,工作溫度范圍大等優點,但是SSD盤成本非常高昂,是SAS盤的10倍以上,并且每塊盤的存儲容量很小,一般才100G到200 G左右,所以SSD盤自身優秀性能支持高并發查詢,擁有極快的響應速度,但是它不適合用來存儲海量數據,因此SSD盤用來存放“熱數據”,“熱數據”即為查詢中頻繁用到的數據。
1.4 區分冷數據,溫數據,熱數據,并且進行數據標記
區分“冷數據”,“溫數據”,“熱數據”的具體方式是通過查詢頻率區分的,查詢頻繁的即為熱數據,查詢比較頻繁即為溫數據,查詢頻率小的即為冷數據,當然可以根據業務具體情況實際情況來區分3種數據,比如數據的重要性來區分3種數據,或者數據的新舊來區分3種數據,區分完數據后對3種數據打標,以便后面的數據遷移,數據遷移能妥善管理數據。
2.1 改進方案設計圖
改進后的整體設計框架如圖1所示。

圖1 改進后整體設計框架圖
2.2 改進后查詢流程圖
改進后的查詢請求流程如圖2所示。

圖2 改進后查詢請求流程圖
2.3 查詢解析模塊說明
將客戶端發出的查詢請求解析為對SATA盤查詢指令,對SAS盤查詢指令和對SSD盤查詢指令,需要特別要說明的,查詢指令如果不可分割,必須同時涉及到不同盤間混合查詢即為混合盤查詢指令。
2.4 數據遷移模塊工具說明
隨著業務需求或者客戶查詢需求的改變,“熱數據”,“溫數據”,“冷數據”3種數據也在動態變化。數據遷移模塊很好的完成了3種數據的遷移轉換。
2.5 改進方案總體流程說明
系統從各種關系型數據庫(Mysql,ORACLE等)和非關系型數據庫(Hbase,Mongodb 等),HDFS 文件系統,各種流式數據,本地磁盤上數據等途徑導入數據。通過數據查詢頻率(或者業務需求)分為“冷數據”,“溫數據”和 “熱數據”并且依次存儲在SATA盤,SAS盤和SSD盤。數據遷移模塊能妥善的管理3種數據,數據遷移之前,對要遷移數據標記轉換成遷移去的盤的統一標記,根據查詢業務需求和數據現階段冷熱程度完成數據遷移轉換。
客戶端發出異步并發查詢請求,查詢解析模塊將查詢指令解析為對SATA盤查詢,對SAS盤查詢,對SSD盤查詢和指令無法分割對多個盤混合查詢4種模式。分別賦予優先級1,2,3,0。然后依次加入緩存隊列,根據優先級大小先后執行查詢請求并將結果返回給客戶端。
3.1 數據來源
數據來源于淘寶提供的資源數據。選取家電,化妝品,電子產品等資源數據約500萬份。確保一條數據既有結構化數據又有非結構化數據,買家信息和商品信息構成結構化數據,買家評論和商品描述構成非結構化數據。檢索詞是電風扇,美白保濕,內存10G。分別在傳統的全用SATA盤存儲的Solr集群和改善后的Solr系統中測試。
3.2 實驗應用步驟
STEP1:把500萬份數據隨機分為約300萬份數據,180萬份數據,20萬份數據,然后通過查詢頻率分為“熱數據”,“溫數據”和“冷數據”(這里為了實驗方便,根據數據時間,近期新數據為“熱數據”,中等新的數據為“溫數據”,老的數據為“冷數據”。具體分數據時候,也可以根據業務需求區分數據)。將3種數據分別存儲到SSD盤,SAS盤,SATA盤中。選擇3臺配置相同的電腦作為集群(操作系統:64位Windows8;CPU:INTEL 酷睿 17-3537U,2.0 GHz;內存:4 GB)。
STEP2:每條原始數據包括結構化數據和非結構化數據,非結構化數據買家評論和商品描述在Solr中進行分詞,然后建立統一的倒排索引,索引列選取商品型號,種類和價格和結構化數據一起索引到Solr中。
STEP3:在改進后的Solr存儲系統中輸入檢索詞電風扇,美白護膚,內存10G。得到測試結果。
STEP4:在原始的Solr系統和HBASE數據庫中導入同樣的數據和輸入同樣的檢索詞進而得到測試結果。
3.3 實驗結果比較
根據表1,2,3可以得到實驗結果:
改進后的Solr混合存儲系統查詢速度對比沒改進的Solr和傳統查詢海量數據HBASE數據庫查詢速度優勢明顯。

表1 3034279份數據

表2 1809108份數據

表3 213672份數據
數據量越大,這種優勢表現的會越來越大。數據量10倍增加,改進后的Solr查詢系統查詢時間增加幅度較小,而傳統的Solr和HBASE數據庫查詢時間增加幅度較大。
文中提出了對Solr底層數據分盤存儲的改善思路,并且設計并且優化了新的Solr底層存儲方案。并在淘寶用戶評論檢索系統中對比傳統的Solr查詢和HBASE查詢。驗證了方案的可行性和查詢性能的優越性。
[1]Rafal Kuc.Marek Rogozinski.Mastering Elastic Search[M].北京:機械工業出版社.
[2]趙凱,王敏.基于Solr企業級搜索引擎的設計[J].電子世界,2014(11):10-11.
[3]MichaelMcCandless,ErikHatcher,OtisGospodnetic.lucene實戰[M].北京:人民郵電出版社.
[4]李戴維,李寧.基于Solr的分布式全文檢索系統的研究和實現.[J].計算機與現代化,2014(9):6-9,14.
[5]莊新妍.計算機中文粉刺技術的研究現場與困難[J].呼倫貝爾學報,2013(3):4-9,24.
[6]陳波.基于全文檢索系統Solr的OPAC分面瀏覽[J].現代圖書情報技術,2013(11):72-75.
[7]張建飛,黃艷飛.基于ElasticSearch的數字圖書館檢索系統[D].長沙:中南大學,2015.
[8]鄒敏昊.基于Lucene的HBase全文檢索功能的設計和實現[D].南京:南京大學,2013.
[9]韓云輝.基于Lucene的數字版權資源庫的構建和應用研究[D].北京:北方工業大學,2013.4
[10]王小森.基于Solr的搜索引擎的設計和實現[D].北京:北京郵電大學,2014.
[11]姚曉娜,祝忠明.基于分面搜索引擎的Solr的機構知識庫訪問統計[J].現代圖書情報技術,2016(Z1):37-40.
[12]劉春江,劉丹軍,文奕.基于Solr的專利在線分析系統的設計和實現 [J].現代圖書情報技術,2013(2):89-92.
[13]張震,甘克勤.基于Solr的大規模標準文獻可視化分析系統[J].計算機系統應用,2016(3):67-71.
[14]馮祥,邱志超.基于Solr的海量日志信息查詢性能優化的研究[J].硅谷,2014(3):37-39.
[15]羅惠峰.基于Lucene的站內檢索系統的設計與優化[D].杭州:浙江工業大學,2015.
Based on stored in Taobao Solr mixed media system in the research of application
WANG Yang1,CUI Wei2
(1.Ltd.Nanjing R&D,FiberHome Communications Science&Technology Development Co.,Nanjing 210019,China;2.Wuhan Research Institute of Posts and Telecommunications, Wuhan 430000,China)
DT times has come,open source search engine has become the mainstream of the major companies to retrieve massive data.Among them Solr to support a variety of formats index,high efficiency,high flexibility,high saclability,bythe majority of fans and the favor of major companies.In this paper,base on the improved Solr retrieval speed and convenience data management ,put forward the mixed media storage,query points disk management and setting priorities asynchronous concurrent impovements.Through research and application in taobao users comments retrieval system,confirmed the scheme to optimize performance and improve the retrieval speed.
Lucene; Solr; mixed media storage; hot and cold data; Taobao user review system
TN02
:A
:1674-6236(2017)15-0022-04
2016-06-20稿件編號:201606139
江蘇省科技支撐計劃(2015BAK20B01)
汪 洋(1978—),男,江蘇南京人,碩士,高級工程師。研究方向:大數據,計算機網絡。