?

基于Elasticsearch的HBase大數據二級索引方案

2020-04-14 04:54李傳冰
電腦知識與技術 2020年4期
關鍵詞:數據量檢索數據庫

摘要:HBase一直是大數據領域常用的非關系型數據庫。隨著HBase數據庫中存入的數據量不斷增長,對數據庫里的數據進行查詢變得越來越困難,需要有一個合理的二級索引的方案提高查詢的效率。Elasticsearch是一個高性能的搜索服務器,利用Elasticsearch的技術,存儲并搜索二級索引可以極大地提高HBase查詢效率。

關鍵詞:大數據;HBase;二級索引;協處理器;Elasticsearch

中圖分類號:TP392

文獻標識碼:A

文章編號:1009-3044(2020)04-0001-02

收稿日期:2019-11-18

作者簡介:李傳冰(1993—),男,湖北武漢人,碩士研究生,主要研究方向為大數據。

A Secondary Index Scheme of Big Data in HBase Based on Elasticsearch

LI Chuan-bing

(The Third Research Institute of The Ministry of Public Security,Shanghai 200031,China)

Abstract:HBase has always been used as a NoSQL database in the field of big data.With the increasing amount of data stored in the HBase database,it becomes more and more difficult to query the data in the database.Therefore,a reasonable secondary index scheme is needed to improve the efficiency of the query.Elasticsearch is a high-performance search server,and the efficiency of the query in the HBase database can be improved greatly by storing and searching secondary indexes with Elasticsearch.

Key words:big data;HBase;secondary index;coprocessor;Elasticsearch

1?概述

隨著大數據時代的來臨,人們所存儲的數據量呈爆炸性增長。數據能被用起來做各種數據分析才能發揮數據的價值。而對數據的利用第一步就是查詢,查詢效率的高低直接影響大數據分析的快慢。因此,很多公司投入相當多的精力去尋找可以提升搜索速度的方案。HBase作為一個可以存儲海量數據的數據庫,存儲性能十分優異,但是查詢范圍十分有限,在缺少主鍵的情況下,條件查詢效率也比較低下[1],僅僅依靠數據庫的搜索功能無法滿足商業化的業務需求。于是,有很多新穎的搜索方案被提出,其中比較實用的方案是釆取存儲并查詢二級索引的方案,加上基于Lucene的分布式搜索引擎Elasticsearch的配合使用[2],整套方案更加可靠、高效。

2?基于Elasticsearch—級索引方案

為了方便測試,構建了一個完整的二級索引存儲系統。首先由Kafka的生產者生產批量實驗性數據,數據總量1000萬條;然后由Kafka的消費者將數據寫入HBase,在數據錄入的同時,啟動HBase的協處理器Coprocessor,通過觸發Coprocessor的鉤子函數,同步二級索引至Elasticsearch。

整個系統搭建在三臺服務器上,三臺服務器均是Think-Server RD650,操作系統centos6.7,處理器Intel(R)Xeon(R)E5-2630v3,內存32GB。為了便于區分,給三臺服務器分別命名為nodel10、nodel11、nodel12。因為HBase是部署在HDFS之上的,所以先在nodel10、node111、node112上部署了hadoop,node110為NameNode,node110、node111、node112為DataNodeo通過不斷的選擇嘗試,最后選擇了安裝hadoop-2.7.7,hadoop-2.7.7版本比較穩定、成熟。在安裝HBase的時候,在與hadoop-2.7.7匹配的版本中,選擇了比較新的HBase-2.0.5。

HBase的協處理器機制有兩種:一種是Observer,另一種是Endpoint[3]。Observer類似于一個觸發器,在實際使用中,Observer機制比Endpoint更加靈活,Observer機制可以給特定的表綁定,不需要該機制的表則可以不綁定??紤]到實際的應用場景,采取的是Observer機制。在Kafka的消費者向HBase傳入數據的過程中,釆取了以隊列的方式批量導入,每一萬條數據為一個批次,這樣比一條一*條數據put進HBase,速度要快上很多。在實際的數據導入過程中,數據量不可能恰好是一萬的倍數,多出來的余數如果不足一萬,會導致數據遺漏,為了彌補這一缺漏,還給HBase導入數據增加了一個時間機制,每隔5秒鐘,會將一個批次里剩下的數據均導入HBase數據庫。

Elasticsearch的連接client以前是Transportclient,根據Elasticsearch官方的建議,以后會一直使用RestHighLevelClient、RestLowLevelClient[4],并停止對Transportclient的更新。RestHighLevelClient封裝的更好,相比于RestLowLevelClient更易于配置參數,因此采用RestHighLevelClient。Elasticsearch也選取了比較新的版本7.2.0。

在給Elasticsearch傳輸數據的過程中,配置了bulkProces-sor,設置了批量傳輸的機制,這樣可以提高傳輸效率。bulkPro-cessor也是兩種傳輸機制并行,一個是以隊列的方式批量導入,另一個是時間機制。這兩種機制在bulkProcssor中都可以很方便的配置參數,經過各種調試,最后選擇隊列容量同樣為一萬條數據,時間機制為每隔5秒鐘回滾一次,將隊列中剩余的數據一起導入。

3?Elasticsearch二級索引性能測試

3.1?數據的寫入性能

Kafka的生產者生產了批量實驗性數據,每一批數據都有一千萬條。每一條數據包括了一個假想用戶的各項信息,一共有11個字段,字段名分別為用戶名、地址、創建時間、電子郵件、序號、主機IP、登錄時間、手機號碼、密碼、真實姓名、記錄。每一個字段下的參數都是12位隨機英文字符。數據寫入測試進行了5次,每次測試時每條數據包含的字段數不同,依此是1、4、6、8、11個,用于比較在不同字段數的情況下整個系統的數據寫入性能。對整個系統的數據寫入性能測試,是從數據寫入HBase開始,到二級索引全部存入Elasticsearch結束。

測試結果如表1所示:

如表1中展示的結果可以看出,隨著字段數的增加,每秒寫入條數開始降低,雖然每一次測試數據的條數都是一千萬,但是字段數的增加等于HBase存入的列數增加,相對于一個字段來說寫入的數據量更大,按每秒寫入多少條數據并不能完全顯示寫入性能,按每秒寫入的字節數可以更可靠的顯示寫入性能。這點可以從表1中最后一列得到驗證,寫入速率基本維持在2~3MB/秒之間。

基于Elasticsearch的二級索引存儲系統,寫入數據速率比較穩定,在存入數據的字段數為1個的情況下,按照測試的結果,一天的數據寫入量可以達到20億條左右。

3.2?數據的檢索性能

數據的檢索,先依靠Elasticsearch搜索關鍵詞查詢到id,Elasticsearch中存入的每條數據的id即是HBase中所對應數據的rowKey,然后根據這個rowKey在HBase中查詢原始數據。HBase搜索關鍵詞的能力比較差,但是在已知rowKey的情況下,查詢效率能夠得到顯著提高。

測試時,進行了兩種檢索性能測試,一種是精確查詢,另一種是模糊查詢。均進行了100次重復實驗,Elasticsearch查詢時間是Elasticsearch根據關鍵詞檢索id的時間,HBase檢索時間是HBase根據id(rowKey)查詢原始數據的時間,每次查詢的總時間是這兩個查詢時間之和,平均查詢時間如下表2所示。

Elasticsearch模糊查詢時間比精確查詢時間多花了一點,但基本上檢索時間都在毫秒量級,Elasticsearch查詢出rowKey后,HBase再根據rowKey查詢原始數據所消耗的時間也很短,同樣是毫秒量級,二者相加,總的查詢時間不到1秒,可見整個系統的數據查詢性能足夠滿足快速查詢的需求。

4?結論

基于Elasticsearch的二級索引系統,極大地提咼了HBase的檢索效率。數據寫入性能可以達到2~3MB/s,總的檢索性能可以達到毫秒量級。整套系統既可以滿足海量數據的寫入需求,也可以滿足快速檢索的需求。

參考文獻:

[1] 夏超俊.基于協處理器機制的HBase檢索速度改進研究[D].湖南大學,2015.

[2] 梁文楷.基于Elasticsearch全文檢索系統的實現[J].電腦編程技巧與維護,2019(6):116-119.

[3] 朱松杰,婁淵勝,葉楓,李凌,陳勇.基于協處理器的HBase內存索引機制的研究[J/OL].計算機工程與應用,1-11[2019-11-15].

[4] 李宣廷,姜楠,狄查美玲,王淖瑩,孟德文.基于ElasticSearch的網絡輿情搜索平臺設計[J].大連民族大學學報,2019,21(5):449-452.

[通聯編輯:王力]

猜你喜歡
數據量檢索數據庫
基于大數據量的初至層析成像算法優化
計算Lyapunov指數的模糊C均值聚類小數據量法
寬帶信號采集與大數據量傳輸系統設計與研究
2019年第4-6期便捷檢索目錄
專利檢索中“語義”的表現
國際標準檢索
國際標準檢索
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合