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

        ?

        基于HBase的海量文件的檢索方案研究

        2016-12-15 02:47:16陳棟波高躍明
        軟件 2016年11期
        關(guān)鍵詞:全文檢索分詞海量

        陳棟波,高躍明

        (1. 北京郵電大學 網(wǎng)絡與交換技術(shù)國家重點實驗室,北京 100876;2. 上海欣方智能系統(tǒng)有限公司北京分公司,北京 100085)

        基于HBase的海量文件的檢索方案研究

        陳棟波1,高躍明2

        (1. 北京郵電大學 網(wǎng)絡與交換技術(shù)國家重點實驗室,北京 100876;2. 上海欣方智能系統(tǒng)有限公司北京分公司,北京 100085)

        在互聯(lián)網(wǎng)(尤其是移動互聯(lián)網(wǎng))、物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等高速發(fā)展的大背景下,數(shù)據(jù)呈現(xiàn)爆炸式地增長。這類數(shù)據(jù)不規(guī)則的特性決定了其無法再按照傳統(tǒng)基于屬性列的方式進行檢索,而是需要具備更加龐大的水平擴展性。使用NoSQL數(shù)據(jù)庫HBase和搜索引擎ElasticSearch相結(jié)合,通過對檢索方案進行設(shè)計,對關(guān)鍵字匹配、語意檢索、邏輯關(guān)系等檢索策略進行測試和分析,實現(xiàn)能夠快速、準確的適用于海量數(shù)據(jù)的檢索方案。

        大數(shù)據(jù);HBase;ElasticSearch;檢索方案

        本文著錄格式:陳棟波,高躍. 基于HBase的海量文件的檢索方案研究[J]. 軟件,2016,37(11):88-92

        0 引言

        在互聯(lián)網(wǎng)(尤其是移動互聯(lián)網(wǎng))、物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等高速發(fā)展的大背景下,數(shù)據(jù)呈現(xiàn)爆炸式地增長。海量小文件的應用在生活中已越來越常見,不僅存儲容量巨大,而且數(shù)據(jù)類型繁多、數(shù)據(jù)大小變化幅度大、流動快等顯著特點,往往能夠產(chǎn)生千萬級、億級甚至十億、百億級的海量文件。隨著檢索數(shù)據(jù)的增加,檢索效率在減少。

        傳統(tǒng)的結(jié)構(gòu)化關(guān)系型數(shù)據(jù)庫管理中,數(shù)據(jù)的檢索往往是基于列的條件檢索。但是這類非結(jié)構(gòu)化文檔數(shù)據(jù)不規(guī)則的特性決定了其無法再按照傳統(tǒng)基于屬性列的方式進行檢索,而是需要具備更加龐大的水平擴展性。NoSQL技術(shù)的出現(xiàn),在一定程度上改變了這一狀況,使數(shù)據(jù)不必一定滿足關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的需要。而使用搜索引擎對大數(shù)據(jù)的搜索更是使檢索更為方便。

        基于以上的這種背景,對詞組搜索、詞組選擇、提供結(jié)果的相關(guān)度等檢索策略進行了研究,使用NoSQL數(shù)據(jù)庫HBase和搜索引擎ElasticSearch相結(jié)合,設(shè)計和實現(xiàn)了適用于海量文件的檢索方案:通過對檢索策略進行設(shè)計,(包括確定檢索的數(shù)據(jù)庫、檢索的用詞,并明確檢索詞之間的邏輯關(guān)系和查找步驟的科學安排),對關(guān)鍵字匹配、語意檢索、邏輯關(guān)系等檢索策略進行測試和分析,實現(xiàn)能夠快速、準確的海量數(shù)據(jù)的全文檢索方案。

        1 技術(shù)背景綜述

        HBase是hadoop系列的開源數(shù)據(jù)庫。Hadoop為大數(shù)據(jù)處理而生,天生就是處理大數(shù)據(jù)的利器,但是其所擅長的是離線出來數(shù)據(jù)。而當需要動態(tài)實

        時的從海量數(shù)據(jù)中獲取信息時,就產(chǎn)生了HBase。HBase作為Google Bigtable的開源實現(xiàn),是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),與Hadoop的作業(yè)模式不同,HBase可用于存儲和處理半結(jié)構(gòu)化的數(shù)據(jù),且能夠?qū)⒑A繑?shù)據(jù)進行實時的處理,并動態(tài)的向用戶提供數(shù)據(jù)的存儲及讀寫服務。

        但是隨著使用的需求越來越多,應用場景日益復雜,用戶對查詢方式的的要求變得越來復雜。在HBase HBase的設(shè)計中只有每行數(shù)據(jù)的row key作為數(shù)據(jù)檢索的唯一索引,這使得HBase在檢索方面有很多的限制,這就要求在設(shè)計表結(jié)構(gòu)的時候要根據(jù)表的使用場景做額外的考慮,經(jīng)常會遇到不得不進行全表掃描的查詢條件,這對于海量數(shù)據(jù)的表來說,完全是無法接受的災難。單一的按row key檢索數(shù)據(jù)的方式,無法再滿足更多應用的需求?,F(xiàn)有的傳統(tǒng)的數(shù)據(jù)庫產(chǎn)品都有索引以及全文檢索的功能,而在HBase中至今沒有完整的解決方案。

        關(guān)于HBase檢索的方案,最常見的方案是基于Lucene或者Solr使用MapReduce去創(chuàng)建索引,再提供搜索,這樣的方法是增量建立索引有困難,隨著數(shù)據(jù)增大,每一次建立索引的時間會非常長,最后變成一個不可能完成的任務。另一方面,該方式基本就是為不同的數(shù)據(jù)編寫不同的MapReduce任務,沒有通用性。還有就是將管理全部放在客戶端,比如Facebook的收件箱查詢,分詞的工作是由應用來完成,然后存儲在HBase中,但是該類設(shè)計并沒有通用性。還有一些嘗試是基于HBase coprocessor的并使用Lucene為HBase增加全文檢索功能。關(guān)于全文檢索的討論,基本上還是圍繞著Lucence使用或者Solr來進行,但是一直以來全文檢索也并未被社區(qū)重視,所以社區(qū)在這方面并沒有什么動作,但是隨著信息的增長,全文檢索的需求還是很旺盛的。

        ElasticSearch是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。設(shè)計用于云計算中,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。

        綜上所述,本方案中HBase的全文檢索功能將基于ElasticSearch實現(xiàn),提供簡單靈活的索引定義方式。為了將索引建立方便地嵌入現(xiàn)有的HBase代碼中,將充分利用HBase的coprocessor框架的特點,將相關(guān)代碼填入到對應的鉤子函數(shù)中,這樣能夠大大減少對于源代碼的改動。

        2 方案設(shè)計與實現(xiàn)

        2.1 方案體系結(jié)構(gòu)

        方案的動態(tài)結(jié)構(gòu)如圖2-1所示,在使用檢索功能前,應先使用數(shù)據(jù)庫同步模塊對數(shù)據(jù)庫發(fā)出讀取數(shù)據(jù)的請求,數(shù)據(jù)庫返回數(shù)據(jù)庫后再將其同步到ElasticSearch索引中。當檢索請求發(fā)出時,前端交互模塊將檢索信息和篩選信息發(fā)送到檢索處理模塊,分詞后,檢索處理模塊將推薦關(guān)鍵詞經(jīng)由前端交互模塊返回給用戶。檢索處理模塊自行再使用檢索信息和篩選信息在ElasticSearch索引中進行檢索,并將檢索結(jié)果經(jīng)由前端交互模塊返回給用戶。

        圖2-1 檢索系統(tǒng)的動態(tài)結(jié)構(gòu)

        在整體框架中在系統(tǒng)內(nèi)部大致可以分為三個模塊:信息輸入模塊、檢索處理模塊、數(shù)據(jù)庫同步。在整體架構(gòu)中信息輸入模塊主要起控制器層的接受使用者的消息請求的功能,檢索處理模塊主要起處理檢索信息、實現(xiàn)檢索功能、返回檢索結(jié)果的功能,數(shù)據(jù)庫同步模塊主要起持久層作用,完成數(shù)據(jù)庫同

        步工作:

        1)前端交互模塊:

        前端交互模塊主要實現(xiàn)界面功能,包括以下功能:

        · 提供信息輸入的檢索框以及篩選內(nèi)容的tag;

        · 將檢索關(guān)鍵詞及篩選tag傳入檢索處理模塊進行處理;

        · 在頁面上返回檢索處理模塊的檢索結(jié)果;

        · 在頁面上返回檢索處理模塊的分詞結(jié)果作為檢索的推薦關(guān)鍵詞;

        · 在頁面上點擊相應的檢索結(jié)果能返回看到該結(jié)果的全文信息。

        2)檢索處理模塊:

        檢索處理模塊是體現(xiàn)檢索子系統(tǒng)功能的主要模塊,包括以下兩個子模塊:

        · 分詞子模塊:

        分詞子模塊接受前端交互模塊輸入的字符串,使用ElasticSearch的API連接ElasticSearch的中的MMSeg4j分詞器和IKAnalyzer分詞器進行分詞處理,使得檢索結(jié)果更準確,同時將分詞結(jié)果傳入檢索子模塊和前端交互模塊。

        · 檢索子模塊:

        檢索子模塊中包括了邏輯檢索子模塊、關(guān)鍵詞檢索子模塊和語義檢索子模塊,通過檢索處理模塊中的分詞子模塊傳來的關(guān)鍵詞和前端交互模塊傳來的篩選信息分別實現(xiàn)邏輯檢索、關(guān)鍵詞檢索和語義檢索的功能,使用ElasticSearch的API對數(shù)據(jù)庫同步模塊形成的ElasticSearch索引進行檢索,對檢索結(jié)果按照相關(guān)性進行排序,并返回到前端交互模塊。

        3)數(shù)據(jù)庫同步模塊:

        由于數(shù)據(jù)存放在數(shù)據(jù)庫HBase中,在使用ElasticSearch進行檢索處理模塊進行檢索時,需要先對HBase中的數(shù)據(jù)進行同步。

        · 對HBase中的數(shù)據(jù)進行同步。

        · 在同步的過程中在ElasticSearch中建立索引,將HBase中的Rowkey保存為ElasticSearch中document的ID,將HBase中的column保存為ElasticSearch的field,將HBase中的表名保存為ElasticSearch中的type。

        2.2 檢索功能的實現(xiàn)

        檢索功能對關(guān)鍵詞匹配和語義檢索的具體實現(xiàn)如下圖2-2所示:

        圖2-2 關(guān)鍵詞匹配和語義檢索的具體實現(xiàn)

        kFrame.jsp將檢索關(guān)鍵詞輸入keyServlet中,而kSearchInfo.jsp、kSearchInfoCon.jsp、kSearchInfoTi. jsp、kSearchInfoAu.jsp的選擇將篩選關(guān)鍵詞輸入keyServlet,控制器keyServlet調(diào)用keyValueSearch中的searchResult()來返回關(guān)鍵詞檢索和模糊檢索后整合排序后的結(jié)果。search Result()需要實現(xiàn)檢索子系統(tǒng)的檢索策略:將檢索結(jié)果按優(yōu)先匹配完整關(guān)鍵詞的結(jié)果,然后是分詞后匹配到分詞較多的檢索結(jié)果,接著是分詞后匹配到詞語較少的檢索結(jié)果和模糊匹配的結(jié)果,按相關(guān)度打分后的結(jié)果進行排序并去掉得分過低的結(jié)果。這一部分需要調(diào)用Elastic-Search的API getScore()完成。searchResult()調(diào)用keyValueSearch中的keySearch (String key, String Field)和fuzzySearch(String key, String field)來分別對ElasticSearch索引中的信息進行關(guān)鍵詞檢索和模糊檢索。keyServlet將檢索結(jié)果返回檢索請求輸入時對應的jsp中,每個結(jié)果分別對應一個鏈接顯示,并顯示前200字的預覽。

        2.3 數(shù)據(jù)結(jié)構(gòu)

        本方案數(shù)據(jù)包括HBase數(shù)據(jù)庫表中的數(shù)據(jù)和ElasticSearch中索引中的數(shù)據(jù),這些數(shù)據(jù)是用來檢索的信息。

        2.3.1 數(shù)據(jù)庫表設(shè)計

        HBase中的表Doc結(jié)構(gòu)如表2-1所示。Doc表用來存儲原始的文檔信息,每行數(shù)據(jù)代表一個文檔,每個文檔在1 MB以下,整個表約有1200000條數(shù)據(jù),整體大小約在1 TB左右,存儲在數(shù)據(jù)庫中。

        表2-1 HBase的表Doc結(jié)構(gòu)

        在系統(tǒng)中,doc表的信息在數(shù)據(jù)庫同步模塊使用HBase API進行調(diào)用,將其寫入到ElasticSearch索引中。

        2.3.2 ElasticSearch索引設(shè)計

        ElasticSearch索引HBase如表2-2所示。索引名為HBase,由數(shù)據(jù)庫同步模塊HBase數(shù)據(jù)庫的Doc表寫入,因此索引中每個文檔也大多在1 MB以下,約有1200000個文檔,整個索引大小約為1 MB,通過ElasticSearch自動分片分發(fā)到每個節(jié)點上存儲。存儲的信息為用來檢索的文檔。

        表2-2 ElasticSearch中的索引HBase

        索引文件使用默認的hybrid mmap/nio fs來進行存儲。這種方式將映射的文件加載到虛擬地址空間。也就是在內(nèi)存夠時將索引存在內(nèi)存里,當內(nèi)存不夠時使用虛擬地址映射到磁盤當中。并使用ElasticSearch的gateway功能的local gateway,也就是節(jié)點各自保存其狀態(tài),節(jié)點直接從本地存儲來恢復節(jié)點狀態(tài)和索引信息。

        索引文件由檢索處理模塊使用ElasticSearch API進行訪問,得出檢索結(jié)果返回到前端交互模塊。

        2.3.3 檢索處理模塊數(shù)據(jù)結(jié)構(gòu)

        · 分詞子模塊的數(shù)據(jù)結(jié)構(gòu)

        keyServlet類

        表2-3 keyServlet類的數(shù)據(jù)結(jié)構(gòu)

        analyze類

        表2-4 analyze類的數(shù)據(jù)結(jié)構(gòu)

        2.2.4 檢索子模塊的數(shù)據(jù)結(jié)構(gòu)keyValueSearch類

        表2-5 keyValueSearch類的數(shù)據(jù)結(jié)構(gòu)

        logicSearch類

        表2-6 logicSearch類的數(shù)據(jù)結(jié)構(gòu)

        3 方案測試驗證

        結(jié)合ElasticSearch和HBase集群系統(tǒng),對檢索方案的功能實現(xiàn)情況進行測試,如表3-1所示。

        表3-1 測試硬件環(huán)境列表

        在表3-2中同樣列出了軟件測試的軟件環(huán)境:

        表3-2 測試軟件環(huán)境列表

        如表3-3所示是測試檢索20次的響應時間(設(shè)定最多返回250條結(jié)果)。

        表3-3 響應時間測試時間(單位ms)

        由表3-3可看出,前面幾次響應時間比較長,最長達到了46433 ms,而到后面檢索時間逐漸穩(wěn)定,幾乎都在3 s以內(nèi),查詢相關(guān)資料后是ElasticSearch最開始使用時需要加載field data、倒排索引等數(shù)據(jù)結(jié)構(gòu),需要較長的時間,在加載完成之后檢索時間就較為穩(wěn)定了。

        通過上述對于海量文件檢索方案的測試可以發(fā)現(xiàn),在性能測試方面,當采集量達到一定的量,本系統(tǒng)的檢索的響應時間將維持在3 s以內(nèi),隨著時間和檢索次數(shù)的增加可能會繼續(xù)減少,而且準確率較高,即在系統(tǒng)運行正常時具有極高的可靠性。從而,從上述測試結(jié)果中可以得出結(jié)論,本方案基本符合需求和預期目標。

        4 總結(jié)與展望

        通過對海量文件檢索的現(xiàn)狀和問題進行分析,基于ElasticSearch實現(xiàn)了HBase的檢索功能,大大減少對于源代碼的改動。進行了檢索響應速度測試,得出較好的測試效果。在后續(xù)的開發(fā)中,將通過修改分詞器來提高檢索結(jié)果的準確率,進行深一步的研究和改進。

        [1] 于天恩. Lucene搜索引擎開發(fā)權(quán)威經(jīng)典[M]. 中國鐵道出版社, 2008.

        [2] 王宏霞, 艾樹峰. 數(shù)字圖書館信息檢索技術(shù)的研究[J]. 浙江傳媒學院學報, 2007, 04: 69-71.

        [3] 卓海藝. 基于HBase的海量數(shù)據(jù)實時查詢系統(tǒng)設(shè)計與實現(xiàn)[D]. 北京郵電大學. 2013.

        [4] 陳洪猛. 全文檢索技術(shù)的研究與實現(xiàn)[D]. 北京工業(yè)大學, 2008.

        [5] 楊小莉, 黃水清. 國內(nèi)常見全文檢索系統(tǒng)比較[J]. 圖書與情報, 2006, 02: 94-96.

        [6] (波)庫賽, (波)羅格辛斯基著, 蔡建斌譯. Elasticsearch服務器開發(fā): 第2版[M]. 人民郵電出版社. 2015.

        [7] 張建中, 黃艷飛, 熊擁軍. 基于ElasticSearch的數(shù)字圖書館檢索系統(tǒng)[J]. 計算機與現(xiàn)代化, 2015, 06: 69-73.

        [8] 陳俊杰, 黃國凡. 應用Elasticsearch重構(gòu)圖書館站內(nèi)搜索引擎[J]. 情報探索, 2014, 11: 114-119.

        Research on the Retrieval Scheme of Massive Data Based on HBase

        CHEN Dong-bo1, GAO Yue-ming2
        (1. State Key Laboratory of Networking and Switching Technology, Beijing university of posts and telecommunications, Beijing 100876, China; 2. Shanghai CINTel Intelligent Telecom System Co., Ltd Beijing, Beijing 100085, China)

        With the developing of Internet (especially mobile Internet), Internet of things, cloud computing and big data,the information on the internet showing the situation of the “explosive” growth. The irregular characteristics of data can not be searched through the traditional way of attribute based retrieval. This need to have a more extensive level of scalability. By combine NoSQL database HBase and search engine ElasticSearch, can quickly and accurately the massive data to achieve the retrieval subsystem.

        Big data; Hbase; ElasticSearch; Retrieval scheme

        TP391.1

        A

        10.3969/j.issn.1003-6970.2016.11.019

        陳棟波(1991-),男,碩士研究生,主要研究方向:網(wǎng)絡技術(shù)研究與應用。高躍明(1985-),男,上海欣方智能系統(tǒng)有限公司北京分公司(北京郵電大學產(chǎn)學研基地)數(shù)據(jù)業(yè)務部副經(jīng)理,主要研究方向:電信增值業(yè)務及通信軟件。

        猜你喜歡
        全文檢索分詞海量
        一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
        海量快遞垃圾正在“圍城”——“綠色快遞”勢在必行
        當代陜西(2019年14期)2019-08-26 09:42:00
        結(jié)巴分詞在詞云中的應用
        智富時代(2019年6期)2019-07-24 10:33:16
        值得重視的分詞的特殊用法
        一個圖形所蘊含的“海量”巧題
        Oracle數(shù)據(jù)庫全文檢索性能研究
        基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
        基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲與組織研究
        特色數(shù)據(jù)庫全文檢索系統(tǒng)的設(shè)計
        高考分詞作狀語考點歸納與疑難解析
        人妻少妇精品视频一区二区三| 国产最新AV在线播放不卡| 人人爽亚洲aⅴ人人爽av人人片| 午夜一区二区三区福利视频| 亚洲国产日韩a在线乱码| 特级婬片国产高清视频| 妞干网中文字幕| 日韩人妻一区二区中文字幕| 在线观看人成视频免费| 亚洲永久无码7777kkk| 日韩成人精品日本亚洲| 国产精品女同一区二区免| 国产精品videossex久久发布| 无码a∨高潮抽搐流白浆| 久久久久综合一本久道| 熟妇人妻精品一区二区视频| 日本丰满熟妇videossex一| 人人妻人人添人人爽日韩欧美| 一本色道久久综合狠狠躁中文| 青青草视频是针对华人| 中文字幕无码毛片免费看 | 最新日本一道免费一区二区| 久久ri精品高清一区二区三区| 亚洲国产精品一区二区第一| 女同视频一区二区在线观看| 亚洲性爱视频| 91精品国产免费青青碰在线观看| 亚洲六月丁香色婷婷综合久久| 人妻洗澡被强公日日澡电影| 日韩一线无码av毛片免费| 精品亚洲一区二区视频| 国产白浆在线免费观看| 深夜福利小视频在线观看| 国产精品国产自线拍免费| 四季极品偷拍一区二区三区视频| 国产高潮视频在线观看| 无码人妻少妇久久中文字幕蜜桃| 日产一区一区三区区别| 亚洲av永久无码天堂网小说区| 国产精品video| 久久老熟女乱色一区二区|