摘? 要:為應(yīng)對(duì)海量車流量下的實(shí)時(shí)車輛稽查布控需求,哈爾濱市智能交通平臺(tái)下的大數(shù)據(jù)車輛實(shí)時(shí)稽查系統(tǒng),采用大數(shù)據(jù)Hadoop、HBase等實(shí)時(shí)采集、存儲(chǔ)全市各道路卡口電子警察拍攝上傳的通行車輛的車輛圖片等通行信息,實(shí)時(shí)監(jiān)控全市各道路通行車輛,并對(duì)城市黑名單車輛進(jìn)行稽查布控。系統(tǒng)對(duì)HBase表進(jìn)行預(yù)分區(qū)式優(yōu)化配置,解決了數(shù)據(jù)插入的熱點(diǎn)插入問題;對(duì)表的RowKey進(jìn)行優(yōu)化設(shè)計(jì),解決了數(shù)據(jù)范圍檢索與定位檢索性能兼顧的需求。
關(guān)鍵詞:大數(shù)據(jù);智慧城市;HBase;Spark;ArcGIS;Flex;電子警察;稽查布控
中圖分類號(hào):TP311.13;U495? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)07-0039-03
Research on Real-time Inspection and Control System for Big Data Vehicles
in Intelligent Transportation
QIN Zhaojing
(Sealand Securities Co.,Ltd.,Nanning? 530028,China)
Abstract:In order to meet the demand of real-time vehicle inspection and control under the massive traffic flow,the big data vehicle real-time inspection system under Harbin intelligent transportation platform adopts big data Hadoop,HBase and other real-time collection and storage of the traffic information such as the vehicle pictures taken and uploaded by the citys road checkpoint electronic police,real-time monitoring of the citys road vehicles,and the citys black list vehicles for inspection and control. The system pre-partition the HBase table to optimize the configuration,solve the hot insertion problem of data insertion;optimize the RowKey of the table to solve the performance requirements of data range retrieval and location retrieval.
Keywords:big data;smart city;HBase;Spark;ArcGIS;Flex;e-police;audit and control
0? 引? 言
隨著城市的快速發(fā)展,哈爾濱市的道路卡口數(shù)量、車流量暴增。人工稽查布控方式、傳統(tǒng)技術(shù)的自動(dòng)化稽查布控系統(tǒng)已無法應(yīng)對(duì)海量車流量下的車輛實(shí)時(shí)稽查布控需求。因此,本文為哈爾濱市交警支隊(duì)設(shè)計(jì)、實(shí)現(xiàn)了一套基于大數(shù)據(jù)技術(shù)的車輛實(shí)時(shí)稽查布控智能交通系統(tǒng)。傳統(tǒng)技術(shù)的車輛稽查布控系統(tǒng),數(shù)據(jù)存儲(chǔ)采用關(guān)系型數(shù)據(jù)庫Oracle、MySQL。關(guān)系型數(shù)據(jù)庫存儲(chǔ)容量低、無法橫向擴(kuò)展、插入速度慢,無法應(yīng)對(duì)數(shù)據(jù)量大、數(shù)據(jù)快速增長(zhǎng)的卡口圖片數(shù)據(jù)插入需求。作者曾參與設(shè)計(jì)哈爾濱市大數(shù)據(jù)車輛實(shí)時(shí)稽查布控系統(tǒng),采用大數(shù)據(jù)平臺(tái)及HBase數(shù)據(jù)庫實(shí)時(shí)存儲(chǔ)城市各卡口數(shù)據(jù)。同時(shí)根據(jù)HBase數(shù)據(jù)庫引擎的存儲(chǔ)、查詢特點(diǎn),對(duì)HBase表模型做了優(yōu)化配置,解決了卡口數(shù)據(jù)的插入熱點(diǎn)問題;對(duì)通行車輛數(shù)據(jù)信息表的主鍵Key做了優(yōu)化設(shè)計(jì),實(shí)現(xiàn)了通行車輛數(shù)據(jù)的實(shí)時(shí)檢索需求。
1? 系統(tǒng)架構(gòu)分析
系統(tǒng)分為四層:數(shù)據(jù)采集層、大數(shù)據(jù)存儲(chǔ)層、業(yè)務(wù)處理層、展示層。
1.1? 數(shù)據(jù)采集層
利用FTP文件服務(wù)器實(shí)時(shí)接收道路各個(gè)卡口電子警察攝像機(jī)拍攝上傳的車輛通行圖片信息。實(shí)時(shí)解析FTP文件服務(wù)器中的車輛通行圖片信息并存儲(chǔ)到數(shù)據(jù)層提供的數(shù)據(jù)庫。
1.2? 大數(shù)據(jù)存儲(chǔ)層
大數(shù)據(jù)存儲(chǔ)層采用HBase存儲(chǔ)車輛的通行圖片、文本信息。由于HBase數(shù)據(jù)庫為分布式數(shù)據(jù)庫,并且有自己的數(shù)據(jù)緩存層,數(shù)據(jù)插入過程中,數(shù)據(jù)直接緩存在緩存層,沒有立即寫入文件,待到緩存層數(shù)據(jù)達(dá)到一定閾值后才批量持久化寫入到文件中,因此數(shù)據(jù)插入時(shí)間短、效率高,既能實(shí)現(xiàn)數(shù)據(jù)插入速度快、延時(shí)低,又能實(shí)現(xiàn)多臺(tái)設(shè)備同時(shí)并發(fā)插入。而HBase分布式集群的集群節(jié)點(diǎn),可橫向擴(kuò)展,當(dāng)車輛圖片信息快速增長(zhǎng),集群容量支撐不下時(shí),再增加節(jié)點(diǎn)數(shù)量,即可擴(kuò)展集群容量。
1.3? 業(yè)務(wù)處理層
業(yè)務(wù)處理層采用Java Spring Boot框架。該層讀取要稽查的黑名單車輛庫的車輛信息,去匹配HBase數(shù)據(jù)庫中的通行的車輛信息,若匹配上即是發(fā)現(xiàn)要稽查的車輛,則立即發(fā)出稽查告警警情通知稽查人員。
1.4? 展示層
展示層采用ArcGIS for Flex的前端技術(shù)框架,在城市地圖上,展示城市各道路的卡口GIS地理位置信息、要稽查的黑名單車輛信息、各卡口通行車輛清單,以及車輛的行車軌跡。系統(tǒng)架構(gòu)圖如圖1所示。
,TTL=>‘2592000‘}
,{SPLITS=>[‘001|,002|,003|,004|, 005|,006|
,007|,008|,009|,010|]}
RowKey結(jié)構(gòu)為partionId|carId。其中,partionId的計(jì)算公式為partionId=(hash(carId))/resplitNums。resplitNums為表的預(yù)分期數(shù),carId為車牌號(hào)。
要發(fā)揮出HBase表高并發(fā)低延時(shí)插入,以及海量數(shù)據(jù)存儲(chǔ)的功能,此處需要做如下設(shè)計(jì):
HBase表插入的熱點(diǎn)問題會(huì)導(dǎo)致分布式存儲(chǔ)退化為集中式存儲(chǔ)。HBase表的region接收待插入的RowKey數(shù)據(jù)的邏輯是,只接收值處于該region設(shè)定的[startRowKey,endRowKey]范圍內(nèi)的RowKey數(shù)據(jù)的插入。而默認(rèn)的region的接收范圍為[startRowKey,正無窮大]。因此在startRowKey以后增長(zhǎng)的數(shù)據(jù)都會(huì)一直落入默認(rèn)的region,導(dǎo)致所有數(shù)據(jù)插入壓力落在集群的一個(gè)region上,這樣不但這個(gè)region插入性能會(huì)低下,最重要的是其他節(jié)點(diǎn)的region沒能被使用來分?jǐn)倲?shù)據(jù)存儲(chǔ)任務(wù),導(dǎo)致分布式存儲(chǔ)退化為集中式存儲(chǔ)。要避免這個(gè)問題,需要對(duì)車輛通行信息表進(jìn)行預(yù)分區(qū)。并且預(yù)分區(qū)要結(jié)合數(shù)據(jù)增長(zhǎng)速度來考慮預(yù)分區(qū)數(shù)量。預(yù)分區(qū)數(shù)評(píng)估公式為:預(yù)分區(qū)數(shù)=全年數(shù)據(jù)量/單個(gè)region存儲(chǔ)數(shù)據(jù)量。
車輛通行信息表,預(yù)分區(qū)后,要求車輛通行記錄要能均勻插入各個(gè)region,同時(shí)檢索的時(shí)候,又能快速檢索出指定車輛的通行記錄。這就需要設(shè)計(jì)車輛通行信息表的RowKey時(shí)候要做專門的設(shè)計(jì)。設(shè)計(jì)方式就是設(shè)置RowKey的格式為分區(qū)號(hào)加車牌號(hào)。通過分區(qū)號(hào),保證RowKey能均勻分到各個(gè)region。通過車牌號(hào),來保證在檢索稽查黑名單車輛是否有通行記錄時(shí)候,用黑名單車輛的車牌號(hào)可以在HBase的車輛通行信息表中快速地定位檢索。
3.3? 業(yè)務(wù)層與展示層核心分析
業(yè)務(wù)層與展示層的關(guān)鍵設(shè)計(jì)在于,業(yè)務(wù)層、展示層采用了前后端分離架構(gòu)。業(yè)務(wù)層只為展示層提供展示數(shù)據(jù),展示的具體工作由展示層負(fù)責(zé),實(shí)現(xiàn)了業(yè)務(wù)與展示的解耦。
4? 結(jié)? 論
人工稽查布控與傳統(tǒng)車輛稽查布控系統(tǒng)都無法解決當(dāng)今城市車流量巨大、增長(zhǎng)速度快的背景下的車輛稽查布控問題。大數(shù)據(jù)車輛稽查布控很好地解決了這一突出問題。本文創(chuàng)新點(diǎn)如下:
(1)采用大數(shù)據(jù)技術(shù)來解決傳統(tǒng)稽查布控系統(tǒng)無法應(yīng)對(duì)的海量數(shù)據(jù)的車輛稽查布控問題。
(2)在大數(shù)據(jù)HBase表存儲(chǔ)數(shù)據(jù)時(shí)做了優(yōu)化設(shè)計(jì),采用預(yù)分區(qū)方法解決稽查布控系統(tǒng)中車輛通行表的熱點(diǎn)插入問題。保障HBase分布式數(shù)據(jù)庫發(fā)揮出分布式的特性。
(3)在大數(shù)據(jù)HBase表檢索數(shù)據(jù)時(shí)做了優(yōu)化設(shè)計(jì),對(duì)RowKey做了專門分區(qū)優(yōu)化設(shè)計(jì),保障了要插入的車輛通行數(shù)據(jù)既能均勻分布又能快速檢索。
參考文獻(xiàn):
[1] 牛啟航.大數(shù)據(jù)技術(shù)在智能交通管理中的運(yùn)用 [J].汽車實(shí)用技術(shù),2020(4):222-223+239.
[2] 白建峰.大數(shù)據(jù)時(shí)代城市智能交通網(wǎng)絡(luò)系統(tǒng)發(fā)展可行性研究 [J].通訊世界,2020,27(1):157-158.
[3] 張黃慧.大數(shù)據(jù)技術(shù)在智能交通中的應(yīng)用 [J].電子技術(shù)與軟件工程,2020(1):131-132.
[4] 李雅妮.大數(shù)據(jù)在城市智能交通系統(tǒng)中的應(yīng)用 [J].電子世界,2019(20):174-175.
[5] 魏巍.大數(shù)據(jù)技術(shù)在智能交通中的應(yīng)用分析 [J].工程技術(shù)研究,2019,4(20):116-117.
作者簡(jiǎn)介:覃召敬(1988.03—),男,漢族,廣西貴港人,工程師,本科,曾負(fù)責(zé)哈爾濱市智能交通管控平臺(tái)和合肥市智能交通管控平臺(tái)的設(shè)計(jì)實(shí)現(xiàn),主要研究方向:大數(shù)據(jù)、云計(jì)算、人工智能等在智慧城市、智能交通、數(shù)字金融等行業(yè)的應(yīng)用。