楊臣君,張 欣,楊卓東
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550000)
基于Hadoop的交通數(shù)據(jù)分析系統(tǒng)
楊臣君,張 欣,楊卓東
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550000)
為了保證交通數(shù)據(jù)處理的實(shí)時(shí)性和存儲(chǔ)的擴(kuò)展性,文中設(shè)計(jì)并實(shí)現(xiàn)了一種交通大數(shù)據(jù)分析系統(tǒng),其中Hadoop平臺(tái)利用MapReduce并行分布式計(jì)算對(duì)車輛數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析;另一個(gè)Storm平臺(tái)利用其流計(jì)算組件對(duì)實(shí)時(shí)路況進(jìn)行分析,兩個(gè)模塊協(xié)同作用,能對(duì)緩解城市交通擁堵起到一定的作用。通過測(cè)試表明,系統(tǒng)可靠性較高、計(jì)算速率快,能達(dá)到支持決策的作用。
交通數(shù)據(jù); Hadoop; MapReduce; Strom;支持決策
隨著我國智能交通的快速發(fā)展,許多技術(shù)手段已達(dá)到國際領(lǐng)先水平。但是,問題和困境也逐漸凸顯,從各城市的發(fā)展?fàn)顩r來看,交通數(shù)據(jù)資源的深層次價(jià)值還未得到有效挖掘:除了交通數(shù)據(jù)的感知和采集有限,還對(duì)存在于不同機(jī)構(gòu)管理系統(tǒng)中的海量數(shù)據(jù)沒能共享運(yùn)用、高效分析,對(duì)交通情況缺少判斷預(yù)測(cè),對(duì)影響交通通暢的因素分析不明確,總體上來看,目前智能交通的發(fā)展無法滿足民眾的交通信息服務(wù)的需求[1]。大數(shù)據(jù)分析逐漸成為緩解城市擁堵的關(guān)鍵技術(shù),面對(duì)這些跨平臺(tái)、跨系統(tǒng)的交通數(shù)據(jù),先進(jìn)的大數(shù)據(jù)工具能將海量、零散、異構(gòu)的數(shù)據(jù)整合在同一個(gè)中心,形成一個(gè)關(guān)聯(lián)密切的數(shù)據(jù)鏈,在此前提下能深度挖掘交通數(shù)據(jù)多維度關(guān)系,對(duì)交通勢(shì)態(tài)進(jìn)行預(yù)判,可以提高城市交通管理水平[2-4]。
1.1 Hadoop
Hadoop分布式計(jì)算框架包含能存儲(chǔ)超大型數(shù)據(jù)集的HDFS(分布式文件系統(tǒng)),在進(jìn)行數(shù)據(jù)處理時(shí),Hadoop首先將數(shù)據(jù)切分成多個(gè)block多副本存儲(chǔ)在HDFS上,然后將數(shù)據(jù)進(jìn)行切分再分發(fā)到集群子節(jié)點(diǎn)上進(jìn)行分布式并行計(jì)算。Hadoop計(jì)算框架具有擴(kuò)展性好、可靠性強(qiáng)、效率高、容錯(cuò)性強(qiáng)、成本低的特點(diǎn),并提供界面友好的管理頁面,并得到了廣泛應(yīng)用。
1.2 Hadoop體系架構(gòu)
圖1 Hadoop生態(tài)系統(tǒng)圖
Hadoop生態(tài)系統(tǒng)的基本體系如圖1所示,最底層是HDFS分布式文件系統(tǒng),它能存儲(chǔ)大量非結(jié)構(gòu)化數(shù)據(jù),給上層提供計(jì)算資源。MapRedece分布式并行計(jì)算框架,并能將計(jì)算任務(wù)分部到多個(gè)節(jié)點(diǎn)上最后寫入磁盤保存,Hive和Pig能使用簡單的Shell語句進(jìn)行MapReduce任務(wù),Mahout中有很多現(xiàn)成的數(shù)據(jù)挖掘算法庫供開發(fā)者使用,給大數(shù)據(jù)挖掘提供便利條件。Hbase分布式數(shù)據(jù)庫具有伸縮性強(qiáng)、效率高、可靠性好等特點(diǎn),其支持MapReduce批量寫入數(shù)據(jù),實(shí)現(xiàn)并行計(jì)算和數(shù)據(jù)存儲(chǔ)的無縫結(jié)合。Zookeeper是集群數(shù)據(jù)管理工具,廣泛應(yīng)用于各種集群。Flume的主要功能是收集日志,還具有一些數(shù)據(jù)預(yù)處理的功能。Sqoop可利用并行的方式將Hadoop上存儲(chǔ)的數(shù)據(jù)與傳統(tǒng)數(shù)據(jù)庫進(jìn)行相互傳輸。Ambari是安裝管理工具。
1.3 Hbase
傳統(tǒng)數(shù)據(jù)已經(jīng)無法滿足大數(shù)據(jù)的讀寫要求,Hbase作為Hadoop生態(tài)系統(tǒng)中的另一個(gè)核心模塊,打破了行存儲(chǔ)的方式,采取一種分布式列存儲(chǔ)的方式,查詢規(guī)則也是通過定義列簇,列和值,使得數(shù)據(jù)庫自動(dòng)索引化,面向列存儲(chǔ)數(shù)據(jù)支持動(dòng)態(tài)增加,數(shù)據(jù)為空則不存儲(chǔ),節(jié)省了硬盤空間,每個(gè)字段的數(shù)據(jù)按照列簇存儲(chǔ),大幅提高查詢效率。Hbase自動(dòng)切分?jǐn)?shù)據(jù),支持高并發(fā)讀寫。這一系列優(yōu)勢(shì)讓Hbase較好地滿足了交通流數(shù)據(jù)的場(chǎng)景,能動(dòng)態(tài)增加或減少交通數(shù)據(jù)種類,還能實(shí)時(shí)顯示數(shù)據(jù)特征,達(dá)到數(shù)據(jù)實(shí)時(shí)查詢的效果。
2.1 交通數(shù)據(jù)分析系統(tǒng)框圖
交通大數(shù)據(jù)分析系統(tǒng)框圖如圖2所示,整個(gè)構(gòu)架由4個(gè)大模塊組成:資源模塊(RS)數(shù)據(jù)庫模塊(DB)、服務(wù)器模塊(Server)和客戶端模塊(Client)。最底層是資源采集,其中包括歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù),采集數(shù)據(jù)的設(shè)備也根據(jù)不同需求分類。數(shù)據(jù)持久化層是Hadoop的HDFS,在此之上進(jìn)行MapReduce分布式計(jì)算,同時(shí)可以利用數(shù)據(jù)挖掘工具M(jìn)ahout進(jìn)行數(shù)據(jù)挖掘分析。將一些地點(diǎn)編碼對(duì)應(yīng)地點(diǎn),設(shè)備編碼對(duì)應(yīng)地點(diǎn)等映射關(guān)系存入MySQL便于Webapp傳遞給前端頁面顯示,將需要實(shí)時(shí)查詢的數(shù)據(jù)存入設(shè)計(jì)好列簇和Rowkey的Hbase,Hbase自動(dòng)索引的機(jī)制使查詢速度相較于傳統(tǒng)數(shù)據(jù)庫大幅提高,HIVE進(jìn)行數(shù)據(jù)分析,它能將類SQL語句轉(zhuǎn)化成MapReduce作業(yè),例如查詢出過車輛最高的幾個(gè)路口,違法頻次高發(fā)地段等,使用此技術(shù)都能方便的實(shí)現(xiàn)。在服務(wù)端利用Springmvc接收數(shù)據(jù)與前臺(tái)交互。前端使用Ecahrts和Bootstrap進(jìn)行圖表的繪制,使用Leaflet進(jìn)行地圖圖層的渲染。
圖2 交通數(shù)據(jù)分析系統(tǒng)架構(gòu)圖
在交通大數(shù)據(jù)的場(chǎng)景下,此架構(gòu)根據(jù)不同的需求提供了數(shù)據(jù)離線和在線分析兩種計(jì)算服務(wù),其中MapReduce離線處理框架用于交通模型的建立和大規(guī)模車輛行為軌跡挖掘,Storm流計(jì)算平臺(tái)克服了Hadoop平臺(tái)無法有效在線處理數(shù)據(jù)的不足,它提供的輸入流組件Spout將數(shù)據(jù)傳輸給Blot進(jìn)行計(jì)算任務(wù),同時(shí)創(chuàng)建新的流作為下一個(gè)Blot的輸入流,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)處理。并且對(duì)交通流數(shù)據(jù)進(jìn)行可變長預(yù)測(cè),數(shù)據(jù)最終以報(bào)表的形式顯示在前端頁面,提供決策支持[5]。
2.2 交通大數(shù)據(jù)處理流程
圖3 交通大數(shù)據(jù)處理流程圖
交通大數(shù)據(jù)處理流程如圖3所示。 交通大數(shù)據(jù)處理的整個(gè)流程可以分為數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)分發(fā)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理(挖掘)和結(jié)果呈現(xiàn)。
數(shù)據(jù)采集:包括傳統(tǒng)數(shù)據(jù)庫中歷史數(shù)據(jù)、各種設(shè)備采集的數(shù)據(jù)以及網(wǎng)絡(luò)數(shù)據(jù)。
數(shù)據(jù)預(yù)處理:將交通大數(shù)據(jù)結(jié)果數(shù)據(jù)清洗,規(guī)范統(tǒng)一管理,同時(shí)保證數(shù)據(jù)的完整性和可靠性。
數(shù)據(jù)分發(fā):根據(jù)不同需求將數(shù)據(jù)存入HDFS或者Strom,以便進(jìn)行離線分析或在線計(jì)算。
數(shù)據(jù)存儲(chǔ):存儲(chǔ)在HDFS中的數(shù)據(jù)通過使用MapReduce計(jì)算框架的IO開銷較大,但保證了數(shù)據(jù)處理的穩(wěn)定性。存儲(chǔ)在Storm流式集群中的數(shù)據(jù)在進(jìn)行數(shù)據(jù)處理時(shí)采用全內(nèi)存計(jì)算,這意味著實(shí)時(shí)計(jì)算對(duì)內(nèi)存的開銷較大。
數(shù)據(jù)處理:其中Hadoop模塊主要利用MapReduce對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)或者挖掘以滿足用戶需求[6-7],Storm利用Spout將數(shù)據(jù)傳遞給Blot進(jìn)行數(shù)據(jù)處理的同時(shí)Blot形成新的結(jié)果成為另一個(gè)Blot的輸入。
結(jié)果呈現(xiàn):主要是將結(jié)果分析過的數(shù)據(jù)顯示在前端頁面,這部分根據(jù)不同場(chǎng)景的需要設(shè)計(jì)圖表和功能。
如圖4所示,此系統(tǒng)前端頁面在地圖上標(biāo)記發(fā)光圓圈表示路口,在右側(cè)圖表模塊顯示分析結(jié)果,第一行是每天對(duì)應(yīng)各個(gè)時(shí)段的過車數(shù),第二行是每天對(duì)應(yīng)各地區(qū)車輛數(shù),在中間列出查詢框。
在智能交通監(jiān)控系統(tǒng)的搜索框中輸入地點(diǎn),在日歷控件中輸入時(shí)間則可得到如圖5所示的每天對(duì)應(yīng)各時(shí)段的車數(shù)、每天各個(gè)地區(qū)的過車數(shù)、右下角是省內(nèi)省外車輛比例的餅狀圖。每天數(shù)據(jù)有300~1 000萬,從數(shù)據(jù)處理到結(jié)果呈現(xiàn)僅用時(shí)1 s。
圖4 查詢界面
圖5 查詢結(jié)果圖
通過實(shí)現(xiàn)該系統(tǒng),分布式并行計(jì)算和流式計(jì)算能很好地滿足交通大數(shù)據(jù)的應(yīng)用需求,既能進(jìn)行離線數(shù)據(jù)分析,又能將交通狀況實(shí)時(shí)反映出來[8-11],下一步的工作是將異構(gòu)的交通數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,找出數(shù)據(jù)之間深層次的價(jià)值,為緩解交通擁堵和交通案件的偵破提供有力的決策支持[12-14]。
[1] 王珊,王會(huì)舉,覃雄派,等.架構(gòu)大數(shù)據(jù):挑戰(zhàn)現(xiàn)狀與展望[J].計(jì)算機(jī)學(xué)報(bào),2011,34(10): 1741-1751.
[2] 維克托·邁爾·舍恩伯格, 周濤. 大數(shù)據(jù)時(shí)代——生活、工作與思維的大變革[J]. 汽車縱橫, 2013(3):136-138.
[3] Dean J,Ghemawat S.MapReduce: simplified data processing on largeclusters[J].Communications of the ACM, 2008,51(1):107-113.
[4] 孫彥超,王興芬.基于Hadoop框架的MapReduce計(jì)算模式的優(yōu)化設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),2014(11A) :333- 336.
[5] 陳康,鄭緯.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009,20(5):1337-1348.
[6] 孫廣中,肖鋒,熊曦.MapReduce 模型的調(diào)度及容錯(cuò)機(jī)制研究[J].微電子學(xué)與計(jì)算機(jī),2007,24(9):178-180.
[7] 鄭啟龍,房明,汪勝,等.基于MapReduce模型的并行科學(xué)計(jì)算[J].微電子學(xué)與計(jì)算機(jī),2009,26(8):13-17.
[8] Yang H C,Dasdan A,Hsiao R L,et al.MapReduce merge:simplified relational data processing on largeclusters[C].Soul:Proceeding of the 2007 ACM SIGMOD International Conference Management of Data,2007.
[9] 姬倩倩,溫浩宇.公共交通大數(shù)據(jù)平臺(tái)架構(gòu)研究[J].電子科技,2015,28(2):127-130.
[10] 覃雄派,王會(huì)舉,杜小勇,等.大數(shù)據(jù)分析-RDBMS與MapReduce的競(jìng)爭與共生[J].軟件學(xué)報(bào),2012,23(1):32-45.
[11] 徐子沛.大數(shù)據(jù):正在到來的數(shù)據(jù)革命[M].桂林:廣西師范大學(xué)出版社,2012.
[12] 鄭啟龍,王昊,吳曉偉,等.HPMR:多核集群上的高性能計(jì)算支撐平臺(tái)[J] .微電子學(xué)與計(jì)算機(jī),2008(8):21-23.
[13] 段宗濤,鄭西彬,李瑩,等.道路交通大數(shù)據(jù)及其關(guān)鍵技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2015(6):85-89.
[14] 陸化普,孫智源,屈聞聰.大數(shù)據(jù)及其在城市智能交通系統(tǒng)中的應(yīng)用綜述[J].交通運(yùn)輸系統(tǒng)工程與信息,2015(5):45-52.
Traffic Data Analysis System Based on Hadoop
YANG Chenjun,ZHANG Xin,YANG Zhuodong
(School of Data and Information Engineering, Guizhou University,Guiyang 550000,China)
With the great increase of traffic data in information construction project, the traditional way has been unable to guarantee the scalability of the data processing for real-time and data storage, according to this a series of problems, the design called a traffic data analysis system arises at the historic moment, the platform of Hadoop using the MapReduce of the parallel distributed computing for statistical analysis of the data of the vehicle, another platform called storm using the flow computational components for real-time traffic analysis, effective cooperation of two modules, play a good role to ease urban traffic congestion. The test shows that the system has high reliability and fast calculation speed, and it can achieve the function of supporting decision.
traffic data;Hadoop;MapReduce;Storm;supporting decision
2016- 05- 17
貴州省科技計(jì)劃基金資助項(xiàng)目(黔科合GY字[2010]3056)
楊臣君(1991-),男,碩士研究生。研究方向:分布式并行計(jì)算。張欣(1976-),男,博士,副教授,碩士生導(dǎo)師。研究方向:下一代無線通信及應(yīng)用等。楊卓東(1994-),男,碩士研究生。研究方向:圖像處理。
10.16180/j.cnki.issn1007-7820.2017.04.039
TN911.73
A
1007-7820(2017)04-156-03