999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Solr的海量日志信息查詢性能優化的研究

2014-04-21 00:48:04馮祥邱志超
新媒體研究 2014年3期
關鍵詞:大數據

馮祥+邱志超

摘 要 ApacheSolr是一個基于ApacheLucene的開源企業搜索服務器。Apache SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作為集群的配置信息中心。文章在海量日志索引信息存儲和查詢方面進行了探索,證明了在相關優化策略下Solr Cloud具備了優秀的查詢性能。

關鍵詞 Solr;SolrCloud;日志信息查詢;大數據;性能優化;集群;分片

中圖分類號:TP393 文獻標識碼:A 文章編號:1671-7597(2014)03-0037-03

隨著傳統互聯網和移動互聯網的持續發展,網絡帶給我們的是不斷增長的各種不同價值信息,然而如何在信息海洋中快速檢索到有價值信息,對于我們來講至關重要。目前一些搜索公司在公共互聯網領域提供了很好的解決方案,但是企業或者政府機關內部相關信息往往需要應用獨立的搜索系統,Solr Cloud則是很好的一個平臺選擇。

1 概述

隨著企業和政府信息化建設的持續推進,相關系統平臺會產生海量的日志數據,而這些日志數據的整合分析對于企業和政府相關單位具有非常重要的價值,既有關系型數據庫能夠存儲如此海量的大數據,然而對于分析如此海量的大數據進而提供準確的信息查詢服務則顯得力不從心。

1.1 問題描述

筆者所在從事項目環境對于海量的日志分析具有以下要求。

1)日志信息數據增量龐大。每天會有500萬條記錄的日志增量,總量有15億條記錄,索引物理存儲總量1.5T的存儲。

2)數據索引需要保留4年并且會動態添加新表的配置,并且維護索引和搜索會同步進行。

3)需要根據關鍵字搜索,將相關表的搜索結果總數返回,并且返回其中一個表的前10條數據,要求召回率為100%,可以時間排序。

4)源日志數據表眾多且結構不統一。

5)維護索引結構時同時會產生實時日志數據(約平均每小時20萬條記錄),需保證新日志數據索引同步延遲不得超過1小時。

6)80%請求2 s內響應。物理服務器資源有限,控制在3臺左右。

基于以上特定需求,我們提出基于SolrCloud的日志信息查詢性能優化方案。

1.2 相關技術

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作為集群的配置信息中心。它有如下幾個特色功能。

1)集中式的配置信息。

2)自動容錯。

3)近實時搜索。

4)查詢時自動負載均衡.

下面將詳細描述應用SolrCloud來管理維護海量日志數據查詢的方案,并給出相關優化策略來滿足section 1.1所描述特定需求問題。

2 方案設計

從總體框架(圖1)我們可以看出,具體優化策略包括:索引優化、檢索應用緩存優化、存儲優化、分布式優化等方面。方案中我們依據Solr實際測試結果將Solr單機節點數控制在3-5個,每節點索引量控制在3億條左右。

2.1 索引優化

Solr自帶的全切詞只能講中文全切,英文和數字不能切,我們改造了分詞算法。全切分可以很好解決拉鏈問題,也滿足全召回,但如果字段長度過大可能會導致性能下降,我們將部分只做精確查詢的字段,制定為string類型(不切詞),在索引和查詢時提高效率。

盡量減少配置的數據庫字段,僅索引必要的數據庫字段,減少索引量,同時很多字段是需要檢索,但不需要顯示,將這些設置為不存儲。

2.2 檢索應用緩存優化

為了更好的提供檢索性能,我們將繼承分布式緩存。借助Solr的SolrCacheBase集成了BerkeleyDB。由于BerkeleyDB具有以下特性:高速K-V系統,具備持久化功能,擁有一層可配置的內存cache順序讀寫。我們極大的縮短了查詢的響應時間。

2.3 減少磁盤掃描

Solr是通過唯一主鍵的,每次檢索都要讀取正排索引,可以在每個段前添加BloomFilter。Solr要求讀取ID,有些記錄不分詞,倒排索引和目標正文是一樣的,只讀取倒排索引,減少磁盤掃描,這樣通過優化存儲來提高查詢效率。

2.4 分布式建立索引

Solr Cloud支持直接指定shard(分片),跳過node和collection的分流過程,提高索引入庫速度。我們根據日志時間來做shard指定。

2.5 優化分頁過程

圖4 分頁過程

SolrCloud的分頁查詢是主節點將關鍵字傳給各個shard,各個shard將id和分數傳給主節點,主節點再排序后,再通過id到各個shard中取數據。這個過程我們可以通過在圖4中1.1.2的步驟中直接返回數據,避免進行后續步驟,提高分頁查詢效率。

2.6 根據業務分片

圖5 分片策略

我們前面通過時間做shard分片,查詢過程中可以通過時間范圍來確定哪些shard分片,通過指定shard分片,來縮小查詢數據范圍,提高查詢效率。

3 寫入、讀取性能效果分析

SolrCloud的數據寫入性能測試主要包含以下幾個場景模式,包含單機3節點虛擬集群與單機5節點虛擬集群的性能比較。理論上節點越多,性能會越高,我們做3節點和5節點的測試。

3.1 實驗環境

實測環境的數據庫版本為:Solr:4.5,Oracle:10g。

表1 測試環境

服務器 操作系統 硬件環境 數量endprint

Oracle RedHat Linux

5.4 64Bit CPU:32C

MEM:32G 2臺

Solr服務器 RedHat Linux

5.4 64Bit CPU:32C

MEM:32G 1臺

3.2 索引寫入性能

表2 索引寫入性能

虛擬節點數 數據量 索引

大小 時間

(小時) 每秒

條數 Cpu/內存

3分片集群 1億 58G 9h 3471 12%/9.6G

5分片集群 1億 40G 10h 2300 38%/11G

3分片集群 2億 120G 17h 3508 18%/15G

5分片集群 2億 83G 22h 1167 35%/12.5G

3分片集群 3億 171G 24h 3525 13%/15G

5分片集群 3億 135G 44h 1800 48%/18G

3.3 數據查詢性能

表3 數據查詢性能

虛擬節點數 關鍵字 數據量 時間(毫秒)

3分片集群 *:* 3億 1400

3分片集群 all_fields:*1986* 3億 230082

3分片集群 all_fields:1987* 3億 9870

3分片集群 all_fields:19880101 3億 4522

3分片集群 all_fields:"19890101" 3億 153845

3分片集群 all_fields:("1990" AND "1991") 3億 250349

5分片集群 *:* 3億 1344

5分片集群 all_fields:*1986* 3億 190875

5分片集群 all_fields:1987* 3億 7703

5分片集群 all_fields:19880101 3億 3734

5分片集群 all_fields:"19890101" 3億 118437

5分片集群 all_fields:("1990" AND "1991") 3億 218172

3.4 效果分析

由于做了5節點部署之后,對schema做了優化(將不需要顯示的字段設置為不存儲索引),所以通過上述兩種寫入模式分析我們可以看出,索引量降低很多,但是5節點索引速度慢了很多,而且隨著索引量的增加,索引隨之降低。

查詢效率方面,在3億級數據全量搜索情況下,節點數3或者5差別不是很大,但是查詢語法的不同效率明顯不同。通過不同的關鍵字語法進行查詢,全模糊的效率最低。

考慮到日志系統對索引實時性要求不高,查詢性能比索引性能要求更高,該硬件配置情況下,選擇5節點模式。

4 總結

本文針對海量日志系統的數據索引和查詢性能優化進行了探索,證明在海量日志數據環境下,應用以SolrCloud分布式搜索引擎為基礎的查詢系統,在經過特定優化策略下,具有很好的查詢性能和有良好的擴展性。該方案不僅適用于大數據場景下的日志數據分析,同時也適用于其他海量文本數據查詢檢索應用,為我們在大數據時代的信息查詢搜索業務奠定了技術基礎。

參考文獻

[1]solr wiki. http://wiki.apache.org/solr/FrontPage.

[2]solr中國微博. www.solr.cc.

[3]Otis Gospodnetic, Erik Hatcher.Lucene in Action中文版[M].北京:電子工業出版社,2007.endprint

Oracle RedHat Linux

5.4 64Bit CPU:32C

MEM:32G 2臺

Solr服務器 RedHat Linux

5.4 64Bit CPU:32C

MEM:32G 1臺

3.2 索引寫入性能

表2 索引寫入性能

虛擬節點數 數據量 索引

大小 時間

(小時) 每秒

條數 Cpu/內存

3分片集群 1億 58G 9h 3471 12%/9.6G

5分片集群 1億 40G 10h 2300 38%/11G

3分片集群 2億 120G 17h 3508 18%/15G

5分片集群 2億 83G 22h 1167 35%/12.5G

3分片集群 3億 171G 24h 3525 13%/15G

5分片集群 3億 135G 44h 1800 48%/18G

3.3 數據查詢性能

表3 數據查詢性能

虛擬節點數 關鍵字 數據量 時間(毫秒)

3分片集群 *:* 3億 1400

3分片集群 all_fields:*1986* 3億 230082

3分片集群 all_fields:1987* 3億 9870

3分片集群 all_fields:19880101 3億 4522

3分片集群 all_fields:"19890101" 3億 153845

3分片集群 all_fields:("1990" AND "1991") 3億 250349

5分片集群 *:* 3億 1344

5分片集群 all_fields:*1986* 3億 190875

5分片集群 all_fields:1987* 3億 7703

5分片集群 all_fields:19880101 3億 3734

5分片集群 all_fields:"19890101" 3億 118437

5分片集群 all_fields:("1990" AND "1991") 3億 218172

3.4 效果分析

由于做了5節點部署之后,對schema做了優化(將不需要顯示的字段設置為不存儲索引),所以通過上述兩種寫入模式分析我們可以看出,索引量降低很多,但是5節點索引速度慢了很多,而且隨著索引量的增加,索引隨之降低。

查詢效率方面,在3億級數據全量搜索情況下,節點數3或者5差別不是很大,但是查詢語法的不同效率明顯不同。通過不同的關鍵字語法進行查詢,全模糊的效率最低。

考慮到日志系統對索引實時性要求不高,查詢性能比索引性能要求更高,該硬件配置情況下,選擇5節點模式。

4 總結

本文針對海量日志系統的數據索引和查詢性能優化進行了探索,證明在海量日志數據環境下,應用以SolrCloud分布式搜索引擎為基礎的查詢系統,在經過特定優化策略下,具有很好的查詢性能和有良好的擴展性。該方案不僅適用于大數據場景下的日志數據分析,同時也適用于其他海量文本數據查詢檢索應用,為我們在大數據時代的信息查詢搜索業務奠定了技術基礎。

參考文獻

[1]solr wiki. http://wiki.apache.org/solr/FrontPage.

[2]solr中國微博. www.solr.cc.

[3]Otis Gospodnetic, Erik Hatcher.Lucene in Action中文版[M].北京:電子工業出版社,2007.endprint

Oracle RedHat Linux

5.4 64Bit CPU:32C

MEM:32G 2臺

Solr服務器 RedHat Linux

5.4 64Bit CPU:32C

MEM:32G 1臺

3.2 索引寫入性能

表2 索引寫入性能

虛擬節點數 數據量 索引

大小 時間

(小時) 每秒

條數 Cpu/內存

3分片集群 1億 58G 9h 3471 12%/9.6G

5分片集群 1億 40G 10h 2300 38%/11G

3分片集群 2億 120G 17h 3508 18%/15G

5分片集群 2億 83G 22h 1167 35%/12.5G

3分片集群 3億 171G 24h 3525 13%/15G

5分片集群 3億 135G 44h 1800 48%/18G

3.3 數據查詢性能

表3 數據查詢性能

虛擬節點數 關鍵字 數據量 時間(毫秒)

3分片集群 *:* 3億 1400

3分片集群 all_fields:*1986* 3億 230082

3分片集群 all_fields:1987* 3億 9870

3分片集群 all_fields:19880101 3億 4522

3分片集群 all_fields:"19890101" 3億 153845

3分片集群 all_fields:("1990" AND "1991") 3億 250349

5分片集群 *:* 3億 1344

5分片集群 all_fields:*1986* 3億 190875

5分片集群 all_fields:1987* 3億 7703

5分片集群 all_fields:19880101 3億 3734

5分片集群 all_fields:"19890101" 3億 118437

5分片集群 all_fields:("1990" AND "1991") 3億 218172

3.4 效果分析

由于做了5節點部署之后,對schema做了優化(將不需要顯示的字段設置為不存儲索引),所以通過上述兩種寫入模式分析我們可以看出,索引量降低很多,但是5節點索引速度慢了很多,而且隨著索引量的增加,索引隨之降低。

查詢效率方面,在3億級數據全量搜索情況下,節點數3或者5差別不是很大,但是查詢語法的不同效率明顯不同。通過不同的關鍵字語法進行查詢,全模糊的效率最低。

考慮到日志系統對索引實時性要求不高,查詢性能比索引性能要求更高,該硬件配置情況下,選擇5節點模式。

4 總結

本文針對海量日志系統的數據索引和查詢性能優化進行了探索,證明在海量日志數據環境下,應用以SolrCloud分布式搜索引擎為基礎的查詢系統,在經過特定優化策略下,具有很好的查詢性能和有良好的擴展性。該方案不僅適用于大數據場景下的日志數據分析,同時也適用于其他海量文本數據查詢檢索應用,為我們在大數據時代的信息查詢搜索業務奠定了技術基礎。

參考文獻

[1]solr wiki. http://wiki.apache.org/solr/FrontPage.

[2]solr中國微博. www.solr.cc.

[3]Otis Gospodnetic, Erik Hatcher.Lucene in Action中文版[M].北京:電子工業出版社,2007.endprint

猜你喜歡
大數據
基于在線教育的大數據研究
中國市場(2016年36期)2016-10-19 04:41:16
“互聯網+”農產品物流業的大數據策略研究
中國市場(2016年36期)2016-10-19 03:31:48
基于大數據的小微電商授信評估研究
中國市場(2016年35期)2016-10-19 01:30:59
大數據時代新聞的新變化探究
商(2016年27期)2016-10-17 06:26:00
淺談大數據在出版業的應用
今傳媒(2016年9期)2016-10-15 23:35:12
“互聯網+”對傳統圖書出版的影響和推動作用
今傳媒(2016年9期)2016-10-15 22:09:11
大數據環境下基于移動客戶端的傳統媒體轉型思路
新聞世界(2016年10期)2016-10-11 20:13:53
基于大數據背景下的智慧城市建設研究
科技視界(2016年20期)2016-09-29 10:53:22
數據+輿情:南方報業創新轉型提高服務能力的探索
中國記者(2016年6期)2016-08-26 12:36:20
主站蜘蛛池模板: 青青草原国产免费av观看| 欧美精品xx| 国内丰满少妇猛烈精品播| 91在线播放国产| 激情无码字幕综合| 亚洲IV视频免费在线光看| 制服丝袜 91视频| 中文无码精品A∨在线观看不卡| 亚洲欧美日韩中文字幕一区二区三区 | 国产不卡在线看| 99ri国产在线| h视频在线观看网站| 亚洲美女操| 欧美色视频网站| 中文字幕久久亚洲一区| 亚洲综合狠狠| 国产欧美另类| 蜜臀AV在线播放| 欧美精品三级在线| 在线无码av一区二区三区| 免费国产黄线在线观看| 视频二区中文无码| 亚洲无码四虎黄色网站| 亚洲色图欧美在线| 综合色在线| 91人人妻人人做人人爽男同| 亚洲精品爱草草视频在线| 亚洲国产精品成人久久综合影院| 精品人妻一区二区三区蜜桃AⅤ| 91精品国产一区| 毛片免费网址| 久草中文网| 国产在线啪| 暴力调教一区二区三区| 日本草草视频在线观看| 久久亚洲黄色视频| 99福利视频导航| 国产大片喷水在线在线视频| 日韩成人免费网站| 爱做久久久久久| 97综合久久| 国产精品jizz在线观看软件| 欧美日韩高清在线| 手机成人午夜在线视频| 激情网址在线观看| 99国产精品免费观看视频| 亚洲区第一页| 亚洲精品午夜无码电影网| 免费国产福利| 欧美一级一级做性视频| 毛片手机在线看| 免费一级成人毛片| 色偷偷综合网| 亚洲成人免费看| 免费中文字幕一级毛片| 丝袜亚洲综合| 57pao国产成视频免费播放| 99精品国产高清一区二区| 8090成人午夜精品| 欧美亚洲香蕉| 国产在线观看第二页| 无码网站免费观看| 日韩在线第三页| 欧美精品不卡| 国产精品白浆无码流出在线看| 91福利在线观看视频| 欧美不卡视频在线| 91网站国产| igao国产精品| 91精品综合| a级毛片一区二区免费视频| 国产一区二区三区视频| 人妻丰满熟妇av五码区| 欧美在线导航| 国产婬乱a一级毛片多女| 国产白浆在线观看| 熟女视频91| 激情无码视频在线看| 4虎影视国产在线观看精品| 亚洲无码久久久久| 日韩欧美国产区| 亚洲水蜜桃久久综合网站|