基于Hadoop的卡口,百度路況等海量數(shù)據(jù)分析研判平臺(tái)研究設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著太原經(jīng)濟(jì)快速發(fā)展,機(jī)動(dòng)車保有量增長迅猛,道路交通擁堵、交通肇事現(xiàn)象越來越嚴(yán)重。為此,太原交警建設(shè)了大量卡口、電子警察、事件監(jiān)測等交通監(jiān)控設(shè)備,這些設(shè)備24h不間斷捕獲過車數(shù)據(jù)和圖像數(shù)據(jù),產(chǎn)生了海量歷史記錄。在此情況下,如何利用先進(jìn)的技術(shù)手段,對交通監(jiān)控設(shè)備采集的海量數(shù)據(jù)進(jìn)行深度挖掘分析成為迫切需要解決的問題。
目前國內(nèi)現(xiàn)有大數(shù)據(jù)分析系統(tǒng)處于結(jié)構(gòu)化數(shù)據(jù)處理模式架構(gòu)體系,無法對城市道路交通整體狀況、出行規(guī)律進(jìn)行大粒度、長周期的數(shù)據(jù)分析,同時(shí)現(xiàn)有系統(tǒng)在對具有邏輯關(guān)聯(lián)的海量多源異構(gòu)數(shù)據(jù)處理存儲(chǔ)效率方面存在不足,不能滿足持續(xù)增長的交管數(shù)據(jù)規(guī)模以及對數(shù)據(jù)深度挖掘、數(shù)據(jù)碰撞和應(yīng)用的需求。面對海量信息洪流以及對數(shù)據(jù)深度挖掘迫切需求,采用大數(shù)據(jù)技術(shù)解決數(shù)據(jù)管理和應(yīng)用問題已是迫在眉睫。
1關(guān)鍵性技術(shù)研究
1.1結(jié)構(gòu)化與非結(jié)構(gòu)化相結(jié)合數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)、實(shí)時(shí)分析
卡口數(shù)據(jù)是典型的結(jié)構(gòu)化和非結(jié)構(gòu)化相結(jié)合的數(shù)據(jù)。其中過車記錄是結(jié)構(gòu)化數(shù)據(jù),過車圖片是非結(jié)構(gòu)化數(shù)據(jù)。兩類數(shù)據(jù)不僅需要實(shí)時(shí)存儲(chǔ),還需要進(jìn)行實(shí)時(shí)分析。
根據(jù)KUDU+HBASsMoB存儲(chǔ)特性可以很好地解決這個(gè)問題。KUDU+HBASsMoB解決方案如圖1所示。
接收程序把數(shù)據(jù)(例如卡口過車記錄)寫到KUDU,Impala/Spark可以實(shí)時(shí)對數(shù)據(jù)進(jìn)行查詢分析。過車圖片按HBASs的大對象存儲(chǔ)(MoB)格式進(jìn)行存儲(chǔ)。該格式特別適合存儲(chǔ)單個(gè)數(shù)十千至數(shù)十兆的非結(jié)構(gòu)化文檔,即使對于十億級(jí)別的MoB文檔數(shù)據(jù)表仍能做到毫秒級(jí)增刪改查操作,同時(shí)支持所有HBASs原生特性,與上層HBASs應(yīng)用100%兼容。
1.2前后端多環(huán)節(jié)多網(wǎng)絡(luò)環(huán)境下如何保障數(shù)據(jù)不丟不重
以最復(fù)雜的核心業(yè)務(wù)數(shù)據(jù),卡口數(shù)據(jù)的傳輸為例進(jìn)行說明,卡口數(shù)據(jù)從卡口客戶端傳輸?shù)酱髷?shù)據(jù)平臺(tái)中的KUDU和HBASs存儲(chǔ)需要經(jīng)過4個(gè)環(huán)節(jié):
(1)從卡口客戶端傳輸過車記錄和過車圖片到卡口高效接入與轉(zhuǎn)發(fā)程序:
(2)卡口高效接入與轉(zhuǎn)發(fā)程序傳輸過車記錄和過車圖片到消息服務(wù)器kafka:
(3)消息服務(wù)器kafka傳輸過車記錄到分布式關(guān)系型存儲(chǔ)KUDU:
(4)消息服務(wù)器kafka傳輸過車圖片到分布式列式存儲(chǔ)HBASs。
由于網(wǎng)絡(luò)中斷、程序異常在上述1到4的任何一個(gè)環(huán)節(jié)都會(huì)存在數(shù)據(jù)丟失的可能。而卡口數(shù)據(jù)在業(yè)務(wù)上要求不能丟失和重復(fù),因此該問題成為一個(gè)關(guān)鍵性技術(shù)問題。
通過引入多級(jí)緩存和各環(huán)節(jié)之間確認(rèn)機(jī)制,保障數(shù)據(jù)不丟不重的解決方案如圖2所示。
(1)首先對每類數(shù)據(jù)的每個(gè)數(shù)據(jù)產(chǎn)生唯一的數(shù)據(jù)指紋作為冪等性確認(rèn)的唯一標(biāo)識(shí)。該標(biāo)識(shí)符根據(jù)毫秒級(jí)時(shí)間戳加數(shù)據(jù)特征碼自動(dòng)生成,在傳輸過程中一直保持不變,作為數(shù)據(jù)唯一性確認(rèn)的標(biāo)識(shí)。(2)傳輸中間環(huán)境基于內(nèi)存處理,同時(shí)以文件系統(tǒng)做內(nèi)容緩存,防止數(shù)據(jù)丟失。在卡口高效接入與轉(zhuǎn)發(fā)程序與kafka這兩個(gè)中間環(huán)境,數(shù)據(jù)內(nèi)存留一份,同時(shí)文件系統(tǒng)數(shù)據(jù)緩存一份。緩存直到數(shù)據(jù)確認(rèn)收到后才會(huì)刪除。(3)4個(gè)環(huán)節(jié)每個(gè)環(huán)節(jié)之間進(jìn)行確認(rèn)。1)從卡口客戶端到卡口高效接入與轉(zhuǎn)發(fā)程序之間做雙向確認(rèn),只有卡口高效接入與轉(zhuǎn)發(fā)程序確認(rèn)收到數(shù)據(jù)后卡口客戶端才會(huì)刪除數(shù)據(jù),否則會(huì)保留數(shù)據(jù),繼續(xù)重發(fā)。2)卡口高效接入與轉(zhuǎn)發(fā)程序到消息服務(wù)器kafka之間做雙向確認(rèn),只有kafka確認(rèn)收到數(shù)據(jù)后,卡口高效接入與轉(zhuǎn)發(fā)程序才會(huì)刪除數(shù)據(jù)否則會(huì)保留數(shù)據(jù),繼續(xù)重發(fā)。3)消息服務(wù)器kafka傳輸過車記錄到分布式關(guān)系型存儲(chǔ)KUDU,傳輸過車圖片到分布式列式存儲(chǔ)HBASEkafka會(huì)與KUDU和HBASE之間做雙向確認(rèn),只有KUDU和HBASE確認(rèn)都收到數(shù)據(jù)后kafka才會(huì)刪除數(shù)據(jù)否則會(huì)保留數(shù)據(jù),繼續(xù)重發(fā)。
通過上述機(jī)制,可以保證整個(gè)數(shù)據(jù)傳輸過程數(shù)據(jù)不丟、不重。
2基于Hadoop的大數(shù)據(jù)中間件平臺(tái)架構(gòu)設(shè)計(jì)
大數(shù)據(jù)平臺(tái)由分布式資源管理框架實(shí)時(shí)調(diào)度資源、管理計(jì)算分析集群,為各個(gè)租戶以及各個(gè)應(yīng)用提供資源調(diào)度管理以及高效的分析挖掘能力。
2.1數(shù)據(jù)采集
主要完成數(shù)據(jù)的統(tǒng)一采集和處理。針對多樣化數(shù)據(jù)進(jìn)行采集和清洗兼容各類數(shù)據(jù)源(結(jié)構(gòu)化/半結(jié)構(gòu)化/非結(jié)構(gòu)化)、接口方式(FTP/數(shù)據(jù)庫/消息隊(duì)列)和采集頻率(批量/流式)的需求可對數(shù)據(jù)采集頻率、處理流程做配置化管理。
2.2數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)存儲(chǔ)應(yīng)當(dāng)按照數(shù)據(jù)的顆粒細(xì)度以及數(shù)據(jù)分析應(yīng)用的不同需要,將數(shù)據(jù)分為ODS層、輕度匯總、中度匯總層、高度匯總層。ODS和輕度匯總層放置于HDFS中需要檢索查詢的明細(xì)記錄存儲(chǔ)在HBASE中,經(jīng)過HIVE處理后的匯總數(shù)據(jù)可通過Sqoop寫入外部數(shù)據(jù)庫或者通過Impala提供相應(yīng)的實(shí)時(shí)查詢。2.3數(shù)據(jù)處理組件
數(shù)據(jù)處理提供不同層面的大數(shù)據(jù)并行處理能力充分利用x86框架廉價(jià)的計(jì)算和存儲(chǔ)能力實(shí)現(xiàn)分布式計(jì)算和存儲(chǔ)管控,并向上提供各類分析、查詢、處理能力。
2.4系統(tǒng)管理
實(shí)現(xiàn)整體體系的系統(tǒng)安全、系統(tǒng)任務(wù)、系統(tǒng)權(quán)限等管理功能,同時(shí)結(jié)合LDAP與Kerberos提供完備的權(quán)限管理控制。
3海量大數(shù)據(jù)分析研判平臺(tái)框架設(shè)計(jì)
海量大數(shù)據(jù)分析研判平臺(tái)框架設(shè)計(jì)如圖3所示。
3.1數(shù)據(jù)源
從對接系統(tǒng)中接入如下數(shù)據(jù):(1)基礎(chǔ)數(shù)據(jù)。車輛監(jiān)管清單、卡口點(diǎn)位表、道路信息表、城區(qū)信息表和街道信息表。(2)業(yè)務(wù)數(shù)據(jù)。卡口數(shù)據(jù)、百度路況數(shù)據(jù)和l22事故數(shù)據(jù)。
3.2大數(shù)據(jù)硬件
支持大數(shù)據(jù)中間件和應(yīng)用軟件運(yùn)行的硬件環(huán)境,包括PC服務(wù)器、網(wǎng)絡(luò)設(shè)備和存儲(chǔ)。
3.3大數(shù)據(jù)中間件
在大數(shù)據(jù)硬件環(huán)境上部署Hadoop大數(shù)據(jù)中間件軟件為應(yīng)用提供數(shù)據(jù)存儲(chǔ)和分析支撐。
3.4數(shù)據(jù)接入層
支持多協(xié)議、多路由適配,接入各類數(shù)據(jù)源,并發(fā)送到統(tǒng)一的消息服務(wù)器kafka中,為后續(xù)的數(shù)據(jù)存儲(chǔ)和分析應(yīng)用提供數(shù)據(jù)。接入內(nèi)容包括車輛監(jiān)管清單、卡口點(diǎn)位表、道路信息表、城區(qū)信息表、街道信息表、卡口數(shù)據(jù)、百度路況和122事故數(shù)據(jù)等。
3.5數(shù)據(jù)存儲(chǔ)層
實(shí)現(xiàn)數(shù)據(jù)的海量和高效存儲(chǔ)提供對外數(shù)據(jù)服務(wù)其中過車記錄存儲(chǔ)至KUDU,過車圖片存儲(chǔ)至HBASE,滿足高效寫入、檢索、讀取需求。
3.6數(shù)據(jù)分析層
實(shí)現(xiàn)數(shù)據(jù)的深度挖掘和圖像二次識(shí)別分析支撐,提供流式分析平臺(tái),實(shí)現(xiàn)即時(shí)、實(shí)時(shí)和離線分析,并可以通過數(shù)據(jù)湖對所有異構(gòu)數(shù)據(jù)源的統(tǒng)一訪問和處理。
3.7服務(wù)層
提供數(shù)據(jù)虛擬引擎,支持對異構(gòu)數(shù)據(jù)庫(oracle/hbase/kudu/es/mysql/mongodb/hdfs等)的統(tǒng)一管理和數(shù)據(jù)接口提供。該引擎為服務(wù)層的數(shù)據(jù)服務(wù)和大數(shù)據(jù)交互式查詢提供統(tǒng)一數(shù)據(jù)查詢統(tǒng)計(jì)支持。其中數(shù)據(jù)服務(wù)包括卡口數(shù)據(jù)服務(wù)、過車圖片數(shù)據(jù)服務(wù)、貨車闖禁行數(shù)據(jù)服務(wù)、不系安全帶數(shù)據(jù)訪問服務(wù)、開車打手機(jī)數(shù)據(jù)訪問服務(wù)、黃標(biāo)車違法數(shù)據(jù)訪問服務(wù)和單雙號(hào)限行數(shù)據(jù)訪問服務(wù):大數(shù)據(jù)交互式查詢包括HDFS訪問、HIVE查詢和其他支持。
3.8應(yīng)用展示層
實(shí)現(xiàn)業(yè)務(wù)應(yīng)用和可視化展示,包括大數(shù)據(jù)流式計(jì)算分析結(jié)果展示(車輛、路況、流量、OD和違法)和綜合信息大屏展示。
3.9管理層
實(shí)現(xiàn)基礎(chǔ)管理功能支撐,包括系統(tǒng)管理、系統(tǒng)對接、監(jiān)控和配置。
3.10用戶終端
使用PC終端和展示大屏。
4結(jié)語
本文在太原市現(xiàn)有數(shù)據(jù)挖掘的基礎(chǔ)上,提出搭建Hadoop大數(shù)據(jù)中間件平臺(tái),并在此基礎(chǔ)上對卡口、百度路況等海量數(shù)據(jù)進(jìn)行了實(shí)時(shí)高效接入、分布式存儲(chǔ)、多維度挖掘分析和可視化直觀展示,滿足持續(xù)增長的交管數(shù)據(jù)規(guī)模以及對數(shù)據(jù)深度挖掘、數(shù)據(jù)碰撞和應(yīng)用的需求最終實(shí)現(xiàn)資源集成、數(shù)據(jù)集成、業(yè)務(wù)集成、控制集成和展現(xiàn)集成。