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