国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Elasticsearch在車牌識(shí)別系統(tǒng)中的應(yīng)用研究

2014-04-29 00:44許大宏
計(jì)算機(jī)時(shí)代 2014年12期
關(guān)鍵詞:分片車牌文檔

許大宏

摘 ?;要: 為了提升車牌識(shí)別系統(tǒng)中海量識(shí)別數(shù)據(jù)與涉案車輛、交通違法等信息的實(shí)時(shí)分析、計(jì)算與檢索性能,在對(duì)傳統(tǒng)技術(shù)分析的基礎(chǔ)上,針對(duì)現(xiàn)有系統(tǒng)中無(wú)法實(shí)現(xiàn)大數(shù)據(jù)分析與檢索的問(wèn)題,提出了利用Elasticsearch大數(shù)據(jù)實(shí)時(shí)檢索技術(shù)構(gòu)建交通大數(shù)據(jù)處理平臺(tái),在此架構(gòu)上對(duì)交通識(shí)別數(shù)據(jù)進(jìn)行實(shí)際測(cè)試。實(shí)驗(yàn)結(jié)果表明,所用技術(shù)能夠有效解決目前的交通大數(shù)據(jù)檢索和分析等關(guān)鍵問(wèn)題,各項(xiàng)指標(biāo)都滿足了用戶需求。

關(guān)鍵詞: 大數(shù)據(jù); Elasticsearch; 車牌識(shí)別; 檢索

中圖分類號(hào):TP3 ?; ?; ?; ?; ?;文獻(xiàn)標(biāo)志碼:A ?; ?; 文章編號(hào):1006-8228(2014)12-12-03

Application research on Elasticsearch in license plate recognition system

Xu Dahong

(Zhenjiang Branch, Jiangsu Union Technical Institute, Zhenjiang, Jiangsu 212016, China)

Abstract: In order to enhance the functions including massive data identification, the real time analysis on the information of the involved vehicle, traffic violations, computing and retrieval performance of license plate recognition system, based on the traditional technical analysis, since the existing systems can't analyze and retrieve for big data, a large real-time data retrieval using Elasticsearch technology is proposed. The traffic identification data is tested on this platform. The experimental results show that the technology can effectively address key issues such as the current traffic large data retrieval and analysis. The indicators all meet the need of users.

Key words: big data; Elasticsearch; license plate recognition; retrieval

0 引言

大數(shù)據(jù)開(kāi)啟了一次重大的時(shí)代轉(zhuǎn)型[1],面對(duì)海量的車牌識(shí)別數(shù)據(jù),如何高效分析與處理,提取出用戶需要的信息是一個(gè)巨大的挑戰(zhàn)。又如車流量統(tǒng)計(jì)分析、車輛軌跡分析、方向分析、智能跟蹤、涉案車輛和交通違法車輛的實(shí)時(shí)計(jì)算與報(bào)警、案件線索信息檢索等常規(guī)業(yè)務(wù)均需要對(duì)大數(shù)據(jù)的海量檢索。

HBase[2-4]是一個(gè)分布式的、面向列的、可靠的和可伸縮的存儲(chǔ)系統(tǒng),但在數(shù)據(jù)同步、監(jiān)控和查詢復(fù)雜度等方面無(wú)法滿足以上應(yīng)用場(chǎng)景;Hive[2,5]是基于Hadoop[2]的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的SQL查詢功能,可以將SQL語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行,但無(wú)法滿足實(shí)時(shí)性的要求。傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)在寫(xiě)入速度、大數(shù)據(jù)查詢方面無(wú)法滿足需求,因此,本文采用基于Lucene[6]的Elasticsearch[7-9]搜索引擎作為海量數(shù)據(jù)的分析工具。

Elasticsearch是一個(gè)基于Lucene構(gòu)建的開(kāi)源,分布式,RESTful架構(gòu)的搜索引擎,具有穩(wěn)定、可靠、快速、安裝簡(jiǎn)單等特點(diǎn);支持多客戶端調(diào)用、結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)源,可實(shí)現(xiàn)PB級(jí)數(shù)據(jù)量實(shí)時(shí)檢索,復(fù)雜查詢模式和多維統(tǒng)計(jì)等。

1 Elasticsearch設(shè)計(jì)架構(gòu)

Elasticsearch部署結(jié)構(gòu)圖如圖1所示,底層支持本地文件系統(tǒng)或者Hadoop文件系統(tǒng)等文件系統(tǒng),通過(guò)Elasticsearch提供的API(Application Programming Interface,應(yīng)用程序編程接口),可以獲取集群的狀態(tài)信息,節(jié)點(diǎn)負(fù)載信息、建立客戶端與集群交互,實(shí)現(xiàn)索引的CRUD(Create、Retrieve、Update、Delete)操作。

圖1 ?;Elasticsearch 部署結(jié)構(gòu)圖

分布式索引與快速檢索作為Elasticsearch獨(dú)有優(yōu)勢(shì),在實(shí)現(xiàn)算法上具有它的獨(dú)特之處,在此僅對(duì)Elasticsearch的索引算法作出如下分析。

step1:創(chuàng)建索引內(nèi)容相關(guān)的mapping信息(類似于關(guān)系型數(shù)據(jù)庫(kù)的表結(jié)構(gòu))。

step2:創(chuàng)建與集群交互的客戶端,構(gòu)建JSON(JavaScript Object Notation)串。

step3:指定索引文檔要索引的目標(biāo)索引庫(kù)(index),索引類型(type)和文檔ID,如果沒(méi)有指定文檔ID,Elasticsearch會(huì)通過(guò)UUID工具自動(dòng)生成一個(gè)22位字符的UUID作為文檔ID。索引庫(kù)、索引類型和id組合作為一個(gè)文檔的索引庫(kù)中的惟一性標(biāo)識(shí)。

step4:通過(guò)tcp協(xié)議(rest的話就是通過(guò)http協(xié)議)發(fā)送請(qǐng)求到Elasticsearch集群任意節(jié)點(diǎn),接收請(qǐng)求的節(jié)點(diǎn)把請(qǐng)求轉(zhuǎn)接到主節(jié)點(diǎn)。

step5:主節(jié)點(diǎn)接收到請(qǐng)求后,開(kāi)始進(jìn)行分片操作,先讀取集群狀態(tài),把目標(biāo)索引及其分片信息提取出來(lái),根據(jù)索引數(shù)據(jù)的id、類型以及索引分片信息進(jìn)行哈希取模,確定把該條數(shù)據(jù)分配到哪個(gè)分片,分片公式如下:

shard=hash(routing)%number_of_primary_shards

shard為索引要存儲(chǔ)到的分片,number_of_primary_shards為集群設(shè)置的索引分片數(shù),routing為文檔id。shard函數(shù)最后產(chǎn)生一個(gè)0至 number_of_primary_shards-1之間的數(shù)。

step6:找到索引分片的主分片,先把索引請(qǐng)求提交到主分片處理,判斷索引操作的類型,索引操作有兩種。一種是INDEX,當(dāng)要索引的文檔id已經(jīng)存在時(shí),不會(huì)覆蓋原來(lái)的文檔,只是更新原來(lái)文檔;另一種是CREATE,當(dāng)索引文檔id存在時(shí),會(huì)拋出該文檔已存在的異常信息。

通過(guò)(InternalIndexShard)查找與請(qǐng)求索引數(shù)據(jù)類型(type)相符的mapping。對(duì)要索引的JSON字符串進(jìn)行解析,根據(jù)mapping轉(zhuǎn)換為對(duì)應(yīng)的解析結(jié)果。

step7:最后調(diào)用RobinEngine中的相關(guān)方法(添加或修改)對(duì)底層lucene進(jìn)行索引操作,這里是寫(xiě)入到lucene的內(nèi)存索引中(RobinEngine.innerIndex)。

step8:主分片索引請(qǐng)求完就把請(qǐng)求發(fā)給副本進(jìn)行索引操作,根據(jù)集群設(shè)置的action.write_consistency參數(shù)值,默認(rèn)是使用quorum,即quorum值必須大于(副本數(shù)/2+1),如副本數(shù)為2,2/2+1=2也就是說(shuō)要要至少插入到兩份索引中,索引操作才算操作完成。操作完成后把成功信息返回給客戶端。

2 測(cè)試實(shí)例

車牌識(shí)別系統(tǒng)常用功能包括:過(guò)車軌跡信息與圖片檢索、多點(diǎn)碰撞分析、車輛伴隨分析、盜搶車輛分析、車輛頻繁出現(xiàn)點(diǎn)分析、布控車輛實(shí)時(shí)跟蹤等。下面的測(cè)試實(shí)例將以過(guò)車信息檢索對(duì)Elasticsearch進(jìn)行壓力、性能、穩(wěn)定性等常規(guī)測(cè)試。

2.1 測(cè)試環(huán)境

作者使用10臺(tái)HP ProLiant BL460c G7 刀片服務(wù)器和最新版本的軟件發(fā)行版本進(jìn)行集群測(cè)試,測(cè)試軟硬件配置如表1所示。

表1 ?;測(cè)試機(jī)器軟硬件配置信息表

2.2 索引與檢索測(cè)試

采用2013年至2014年7月的某市車牌識(shí)別數(shù)據(jù)共計(jì)47億條作測(cè)試數(shù)據(jù),索引字段主要有車牌號(hào)、車牌顏色、過(guò)車地點(diǎn)ID、車道ID、通過(guò)時(shí)間、圖片ID。在識(shí)別數(shù)據(jù)導(dǎo)入創(chuàng)建索引過(guò)程中,對(duì)索引速度的記錄顯示:平均速度能在每秒8千至1萬(wàn)之間(需求最大值為400條/秒);1億條索引數(shù)據(jù)大約占用100G的存儲(chǔ)空間(所有數(shù)據(jù)共計(jì)4700G);采用Jmeter-2.5做壓力測(cè)試,測(cè)試過(guò)程中CPU使用率平均4%;內(nèi)存占用率在60-80%之間;I/O由于采用光纖存儲(chǔ),基本上沒(méi)有等待時(shí)間。由用戶給定測(cè)試用例,100為用戶最大并發(fā)數(shù),對(duì)用例分別測(cè)試1-100之間幾個(gè)并發(fā)數(shù),測(cè)試結(jié)果見(jiàn)表2。測(cè)試過(guò)程中的系統(tǒng)和JVM資源消耗情況如圖2和圖3所示。測(cè)試結(jié)果表明,索引和搜索速度均超過(guò)用戶設(shè)定的最大值,在未來(lái)幾年內(nèi)基本上不會(huì)存在使用性能上的問(wèn)題。

表2 ?;用例測(cè)試響應(yīng)時(shí)間表(單位:s)

2.3 穩(wěn)定性測(cè)試

Elasticsearch是去中心化的,集群中的任何節(jié)點(diǎn)都有可能成為主節(jié)點(diǎn),節(jié)點(diǎn)之間通過(guò)zen Discovery來(lái)發(fā)現(xiàn)其他節(jié)點(diǎn)(相當(dāng)于Hadoop中的zookeeper),當(dāng)主節(jié)點(diǎn)宕機(jī)時(shí),其他節(jié)點(diǎn)自動(dòng)選舉主節(jié)點(diǎn)并加入,這個(gè)過(guò)程是自動(dòng)完成且是實(shí)時(shí)的;當(dāng)其他節(jié)點(diǎn)宕機(jī)時(shí),會(huì)自動(dòng)恢復(fù)該節(jié)點(diǎn)上的分片數(shù)據(jù)(其他節(jié)點(diǎn)備份)進(jìn)行重新平衡操作。在本文中,分別對(duì)主節(jié)點(diǎn)和從節(jié)點(diǎn)分別逐個(gè)關(guān)閉,直至只存在一個(gè)節(jié)點(diǎn)時(shí)集群還能正常運(yùn)行,只是性能會(huì)下降。當(dāng)重啟節(jié)點(diǎn),或者集群滿足不了需求時(shí),需要添加新的節(jié)點(diǎn),只要啟動(dòng)節(jié)點(diǎn),節(jié)點(diǎn)就會(huì)立即加入集群中,集群會(huì)對(duì)所有的分片數(shù)據(jù)再次平衡(平均分配數(shù)據(jù)到每個(gè)節(jié)點(diǎn)上)。經(jīng)過(guò)測(cè)試,集群的穩(wěn)定性和擴(kuò)展性均能滿足用戶需求。

3 結(jié)束語(yǔ)

本文在對(duì)流行的分布式存儲(chǔ)與檢索框架和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行分析測(cè)試的基礎(chǔ)上,提出了利用基于lucene內(nèi)核的分布式搜索引擎Elasticsearch作為車牌識(shí)別系統(tǒng)的分布式存儲(chǔ)與檢索服務(wù)。通過(guò)對(duì)該框架的穩(wěn)定性、擴(kuò)展性、實(shí)用性和統(tǒng)計(jì)與檢索性能的測(cè)試,結(jié)果顯示,在大數(shù)據(jù)量的情況下該識(shí)別系統(tǒng)能滿足用戶的實(shí)時(shí)性要求,表明技術(shù)上是可行的。Elasticsearch同時(shí)還提供多種方式來(lái)對(duì)集群進(jìn)行監(jiān)控與操作。希望本文可以對(duì)類似需求的用戶提供有效的借鑒與參考,真正實(shí)現(xiàn)對(duì)大數(shù)量的實(shí)時(shí)檢索與訪問(wèn)。

參考文獻(xiàn):

[1] (英)維克托·邁爾-舍恩伯格,(英)肯尼思·庫(kù)克耶.大數(shù)據(jù)時(shí)代[M].浙

江人民出版社,2013.

[2] White T.Hadoop權(quán)威指南(中文版)[M].清華大學(xué)出版社,2010.

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

郵電大學(xué),2013.

[4] Himanshu Vashishtha, Eleni Stroulia. Enhancing Query Support in

HBase via an Extended Coprocessors Framework[J]. Service Wave''11 Proceedings of the European conference on Towards a service-based internet,2011.

[5] 趙龍,江榮安.基于Hive的海量搜索日志分析系統(tǒng)研究[J].計(jì)算機(jī)應(yīng)

用研究,2013.11:3343-3345

[6] (美)高斯帕那,(美)哈特赫.Lucene IN ACTION中文版[M]. 電子工業(yè)

出版社,2007.

[7] http://www.Elasticsearch.org/.

[8] Clinton Gormley,Zachary Tong. Elasticsearch:The Definitive Guide[M].

O'Reilly Media,2014.

[9] 白俊,郭賀彬.基于Elasticsearch的大日志實(shí)時(shí)搜索的軟件集成方案

研究[J].吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2014.1:85-87

猜你喜歡
分片車牌文檔
上下分片與詞的時(shí)空佈局
淺談Matlab與Word文檔的應(yīng)用接口
有人一聲不吭向你扔了個(gè)文檔
分片光滑邊值問(wèn)題的再生核方法
CDN存量MP4視頻播放優(yōu)化方法
數(shù)字圖像處理技術(shù)在車牌識(shí)別系統(tǒng)中的應(yīng)用
基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
第一張車牌
基于MATLAB 的車牌識(shí)別系統(tǒng)研究
基于RI碼計(jì)算的Word復(fù)制文檔鑒別