• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于HBase的交通旅行時(shí)間計(jì)算方法

      2015-09-18 12:37喬彥克陸婷
      軟件導(dǎo)刊 2015年8期
      關(guān)鍵詞:智能交通

      喬彥克++陸婷

      摘要:旅行時(shí)間計(jì)算是智能交通系統(tǒng)研究的重要內(nèi)容,準(zhǔn)確的旅行時(shí)間計(jì)算結(jié)果可以為交通管控部門提供決策支持,緩解交通擁堵情況。近年來(lái),隨著監(jiān)測(cè)水平的提高,交通監(jiān)測(cè)數(shù)據(jù)呈現(xiàn)海量增長(zhǎng)趨勢(shì)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)應(yīng)對(duì)海量數(shù)據(jù)時(shí)存在高并發(fā)讀寫和擴(kuò)展性不足等瓶頸。為解決智能交通因數(shù)據(jù)規(guī)模過(guò)大帶來(lái)的存儲(chǔ)和查詢問(wèn)題,提出了一種基于HBase的交通旅行時(shí)間計(jì)算方法,設(shè)計(jì)了面向查詢優(yōu)化的行鍵策略,并在此基礎(chǔ)上提出了單時(shí)段及多時(shí)段旅行時(shí)間計(jì)算方法。實(shí)驗(yàn)表明,該計(jì)算方法與傳統(tǒng)的基于Oracle的算法相比,時(shí)間效率提高2~3倍,并且有較高的讀寫性能及良好的可擴(kuò)展性。

      關(guān)鍵詞:旅行時(shí)間;海量數(shù)據(jù);HBase;智能交通

      DOIDOI:10.11907/rjdk.151383

      中圖分類號(hào):TP301

      文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)008002204

      基金項(xiàng)目基金項(xiàng)目:北京市自然科學(xué)基金重點(diǎn)項(xiàng)目(4131001);北京市屬高等學(xué)校創(chuàng)新團(tuán)隊(duì)建設(shè)與教師職業(yè)發(fā)展規(guī)劃項(xiàng)目(IDHT20130502);北京市教育委員會(huì)科技計(jì)劃重點(diǎn)項(xiàng)目(KZ201310009009);北方工業(yè)大學(xué)科研啟動(dòng)基金項(xiàng)目(2014)

      作者簡(jiǎn)介作者簡(jiǎn)介:?jiǎn)虖┛耍?989-),男,河南漯河人,北方工業(yè)大學(xué)大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室碩士研究生,研究方向?yàn)榉植际綌?shù)據(jù)庫(kù);陸婷(1990-),女,山東菏澤人,北方工業(yè)大學(xué)大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室碩士研究生,研究方向?yàn)榱鲾?shù)據(jù)的存儲(chǔ)優(yōu)化。

      0 引言

      交通旅行時(shí)間計(jì)算是智能交通領(lǐng)域的一個(gè)重要研究?jī)?nèi)容,精準(zhǔn)的旅行時(shí)間計(jì)算、評(píng)估可以為城市路網(wǎng)規(guī)劃、城市道路交通管理與控制提供重要依據(jù),為道路交通的研究、交通規(guī)劃設(shè)計(jì)、交通管理部門提供決策輔助支持,對(duì)城市交通擁堵問(wèn)題起到一定的緩解作用。

      隨著智能交通的迅速發(fā)展,大量監(jiān)測(cè)設(shè)備用于交通數(shù)據(jù)的采集。以某大型城市的車輛識(shí)別數(shù)據(jù)為例,道路上部署的車輛識(shí)別傳感器數(shù)量為5 000個(gè),每個(gè)傳感器的高峰采樣頻率為1條/秒,則每秒將產(chǎn)生5 000條車輛識(shí)別數(shù)據(jù),每天的高峰折算率為0.33,一年車輛識(shí)別數(shù)據(jù)記錄數(shù)將超過(guò)500億條,數(shù)據(jù)存儲(chǔ)量為10TB級(jí)(來(lái)自實(shí)際項(xiàng)目)。面對(duì)如此規(guī)模的數(shù)據(jù),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)無(wú)法直接有效地滿足海量時(shí)序數(shù)據(jù)的存儲(chǔ)和處理請(qǐng)求,存在擴(kuò)展能力差、寫入延遲高等問(wèn)題,并且傳統(tǒng)的旅行時(shí)間計(jì)算大多是基于車輛采樣數(shù)據(jù)或者浮動(dòng)車數(shù)據(jù)等非全樣數(shù)據(jù),在反映路段旅行時(shí)間的分布上存在一些問(wèn)題。作為新型的數(shù)據(jù)處理技術(shù),HBase[1]已經(jīng)在監(jiān)測(cè)數(shù)據(jù)的大規(guī)模存儲(chǔ)方面得到應(yīng)用,文獻(xiàn)[2]就把HBase作為大規(guī)模無(wú)線傳感網(wǎng)的存儲(chǔ)媒介。

      為解決上述問(wèn)題,本文提出了一種基于HBase的交通旅行時(shí)間計(jì)算方法,針對(duì)海量交通監(jiān)測(cè)數(shù)據(jù)需求,以HBase這種NoSQL類型的數(shù)據(jù)庫(kù)作為監(jiān)測(cè)數(shù)據(jù)的基礎(chǔ)存儲(chǔ)系統(tǒng),并在此基礎(chǔ)上進(jìn)行旅行時(shí)間的全樣數(shù)據(jù)計(jì)算;實(shí)驗(yàn)表明,該計(jì)算方法更準(zhǔn)確,且滿足可擴(kuò)展性與高并發(fā)性。

      1 相關(guān)工作

      旅行時(shí)間是交通出行服務(wù)水平的重要衡量指標(biāo),近年來(lái)對(duì)旅行時(shí)間的研究日益增多。從檢測(cè)技術(shù)角度來(lái)看,通常有基于線圈的估計(jì),基于浮動(dòng)車的估計(jì)和基于車牌識(shí)別的估計(jì)等[3]。從數(shù)據(jù)來(lái)源看,目前的旅行時(shí)間估計(jì)所用數(shù)據(jù)主要有兩類:一是仿真數(shù)據(jù),二是檢測(cè)數(shù)據(jù)。在檢測(cè)數(shù)據(jù)中,部分使用直接測(cè)量樣本車輛的旅行時(shí)間來(lái)進(jìn)行路段旅行時(shí)間的估計(jì),如基于浮動(dòng)車和車牌識(shí)別等,但因是非全樣數(shù)據(jù),因此在反映路段旅行時(shí)間的分布上存在一定問(wèn)題。本文采用全樣的實(shí)測(cè)車牌識(shí)別數(shù)據(jù)對(duì)旅行時(shí)間進(jìn)行計(jì)算。

      目前數(shù)據(jù)的存取技術(shù)主要有以下幾種:(1)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)。在數(shù)據(jù)存儲(chǔ)方面,只能采用結(jié)構(gòu)化的數(shù)據(jù)模式,不支持海量數(shù)據(jù)的存儲(chǔ),嚴(yán)格遵循ACID原則使其不適合大量數(shù)據(jù)的定期更新,基于“極少發(fā)生節(jié)點(diǎn)失效”的假設(shè)而構(gòu)建的傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)不適用于節(jié)點(diǎn)失效經(jīng)常發(fā)生的大規(guī)模集群應(yīng)用場(chǎng)景;在數(shù)據(jù)查詢方面效率極其低下。

      (2)HDFS/MapReduce。目前主流的大規(guī)模數(shù)據(jù)處理技術(shù)Hadoop/MapReduce是專為離線處理和大規(guī)模數(shù)據(jù)分析而設(shè)計(jì)的[4],缺乏實(shí)時(shí)隨機(jī)存取數(shù)據(jù)的能力。車牌識(shí)別數(shù)據(jù)是連續(xù)的時(shí)間流數(shù)據(jù),不適合Hadoop的存儲(chǔ)模式——存儲(chǔ)少量非常大的文件。文獻(xiàn)[5]雖然提出了一種MapReduce下計(jì)算旅行時(shí)間的方法,但其可用性受到制約,這些數(shù)據(jù)無(wú)法實(shí)時(shí)查詢,執(zhí)行一個(gè)任務(wù)計(jì)算的都是全部數(shù)據(jù),如果只需要計(jì)算某個(gè)時(shí)段的旅行時(shí)間,該方法往往無(wú)能為力。

      (3)HBase[6]。它是構(gòu)建在Hadoop之上的一種NoSQL數(shù)據(jù)庫(kù),具有高可靠、高可擴(kuò)展的特點(diǎn),支持隨機(jī)讀寫并且有出色的寫入性能和不錯(cuò)的查詢性能。

      綜上所述,HBase最符合存儲(chǔ)海量監(jiān)測(cè)數(shù)據(jù)的需求,故本文以HBase作為海量車牌識(shí)別數(shù)據(jù)的存儲(chǔ)引擎。

      2 基于HBase的旅行時(shí)間計(jì)算

      2.1 存儲(chǔ)系統(tǒng)架構(gòu)

      圖1所示為識(shí)別數(shù)據(jù)存儲(chǔ)架構(gòu),數(shù)據(jù)寫入部分采用Loadrunner模擬實(shí)時(shí)數(shù)據(jù)的生成并寫入HBase數(shù)據(jù)庫(kù),其中模擬數(shù)據(jù)來(lái)自實(shí)際監(jiān)測(cè)的數(shù)據(jù),旅行時(shí)間的計(jì)算則是通過(guò)計(jì)算HBase的結(jié)果得到。

      圖1 車牌識(shí)別數(shù)據(jù)存儲(chǔ)架構(gòu)

      對(duì)于不同日期采集的監(jiān)測(cè)數(shù)據(jù),有些系統(tǒng)會(huì)采用按天建表的策略,此策略的好處在于錄入速度快,當(dāng)用戶請(qǐng)求一天范圍內(nèi)的數(shù)據(jù)時(shí),只需要訪問(wèn)當(dāng)日的數(shù)據(jù)表。但是隨著時(shí)間的推移,越來(lái)越多的表難于管理,且當(dāng)用戶請(qǐng)求多日的數(shù)據(jù)時(shí)會(huì)訪問(wèn)多張數(shù)據(jù)表,影響訪問(wèn)性能。本文采用將車牌識(shí)別數(shù)據(jù)遷移到HBase集群中,采用一張大表存儲(chǔ)的方法,車牌數(shù)據(jù)記錄條目達(dá)上億級(jí)別。

      HBase是為面向億行級(jí)別的表設(shè)計(jì)的,可以很好地滿足海量數(shù)據(jù)擴(kuò)展要求。但是HBase只能使用按字典序排列的行鍵來(lái)檢索記錄,因此行鍵的設(shè)計(jì)尤為重要。在介紹優(yōu)化查詢的行鍵設(shè)計(jì)策略之前,先介紹相關(guān)概念定義。

      2.2 相關(guān)概念

      概念1 車輛旅行時(shí)間(Travel time):車輛從進(jìn)入到離開(kāi)某一路段所花費(fèi)的時(shí)間;

      概念2 路段旅行時(shí)間:?jiǎn)挝粫r(shí)間內(nèi)該路段經(jīng)過(guò)車輛的旅行時(shí)間平均值;

      概念3 車牌識(shí)別數(shù)據(jù):監(jiān)測(cè)點(diǎn)識(shí)別到的車輛數(shù)據(jù),包括車牌號(hào)、車身顏色、記錄時(shí)間、監(jiān)測(cè)點(diǎn)ID等信息;

      概念4 行鍵(Row key):用于唯一標(biāo)識(shí)HBase表的每一行,沒(méi)有數(shù)據(jù)類型,視為字節(jié)數(shù)組[1]。

      綜合考慮,本文的旅行時(shí)間指路段旅行時(shí)間,選取15分鐘和5分鐘兩個(gè)長(zhǎng)度的時(shí)間段進(jìn)行計(jì)算研究。

      定義1:此公式用于計(jì)算一輛車在某路段的旅行時(shí)間,由離開(kāi)該路段監(jiān)測(cè)點(diǎn)時(shí)間與進(jìn)入該路段監(jiān)測(cè)點(diǎn)時(shí)間差值得出。

      定義2:此公式用于計(jì)算某路段的旅行時(shí)間,為n輛車旅行時(shí)間的均值。

      結(jié)合具體應(yīng)用場(chǎng)景,本文旅行時(shí)間計(jì)算首先對(duì)原始車牌識(shí)別數(shù)據(jù)進(jìn)行存儲(chǔ),然后通過(guò)HBase讀取數(shù)據(jù)并進(jìn)行計(jì)算。

      2.3 查詢優(yōu)化的行鍵設(shè)計(jì)策略

      HBase數(shù)據(jù)庫(kù)系統(tǒng)不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),它沒(méi)有特定模式,建模工作需要數(shù)據(jù)庫(kù)設(shè)計(jì)人員來(lái)完成。為了提高數(shù)據(jù)的查詢性能,必須結(jié)合應(yīng)用場(chǎng)景設(shè)計(jì)出能高效查詢的行鍵,Opentsdb[7]就采用了高效的復(fù)合行鍵設(shè)計(jì)模式,通過(guò)把不同監(jiān)測(cè)指標(biāo)放入合適位置,組合成能夠高效檢索的行鍵。車牌識(shí)別數(shù)據(jù)由監(jiān)測(cè)時(shí)間、車牌號(hào)、監(jiān)測(cè)點(diǎn)ID、車輛顏色、車輛大小等不同的監(jiān)測(cè)信息組成,且主要的查詢條件為時(shí)間、監(jiān)測(cè)點(diǎn)和車牌號(hào)。

      由于HBase不支持二級(jí)索引,故本文采用復(fù)合行鍵。

      行鍵可選方案(部分)如下:

      方案1:--

      該方案中行鍵由時(shí)間監(jiān)測(cè)點(diǎn)ID和車牌號(hào)復(fù)合而成,車牌識(shí)別數(shù)據(jù)按時(shí)間順序存儲(chǔ)。其中--、----是3個(gè)不同行鍵,表示在時(shí)間t2、監(jiān)測(cè)點(diǎn)jcd2下car1、car2、car3三輛車的監(jiān)測(cè)記錄。

      方案2:--

      該方案中識(shí)別數(shù)據(jù)按監(jiān)測(cè)點(diǎn)排序,同一監(jiān)測(cè)點(diǎn)下的數(shù)據(jù)順序存儲(chǔ)。其中 ------是監(jiān)測(cè)點(diǎn)jcd2、時(shí)間t2條件下3個(gè)不同的行鍵,表示了在監(jiān)測(cè)點(diǎn)jcd2、時(shí)間t2有car1、car2、car3三輛車的監(jiān)測(cè)信息。

      方案3:--

      該方案中識(shí)別數(shù)據(jù)按車牌號(hào)順序存儲(chǔ),行鍵以車牌號(hào)起始。其中 --、----是該方案下不同的行鍵組成,表示車car2經(jīng)過(guò)不同監(jiān)測(cè)點(diǎn)的不同時(shí)間。

      以上是幾種復(fù)合行鍵方案,方案一以時(shí)間為主要索引字段,也就是在時(shí)間這個(gè)維度上對(duì)整個(gè)表進(jìn)行排序,相同監(jiān)測(cè)點(diǎn)ID下包含不同的車牌號(hào);方案二以監(jiān)測(cè)點(diǎn)為主要索引字段,相同監(jiān)測(cè)點(diǎn)的數(shù)據(jù)在HBase中按時(shí)間順序連續(xù)存放;方案三以車牌號(hào)為主要索引字段,相同車牌號(hào)的數(shù)據(jù)按監(jiān)測(cè)點(diǎn)順序連續(xù)存放。

      對(duì)車牌識(shí)別數(shù)據(jù)這類交通監(jiān)測(cè)數(shù)據(jù)的查詢主要是基于時(shí)間斷面的查詢。時(shí)間是定位結(jié)果的最關(guān)鍵因素。因此,本文以方案一作為HBase識(shí)別數(shù)據(jù)表的行鍵設(shè)計(jì)方案。

      實(shí)際應(yīng)用中行鍵結(jié)構(gòu)如表1所示。

      采用方案一的時(shí)間在前復(fù)合行鍵,使得基于時(shí)間條件的查詢效率非常高(避免了全表掃描),除了應(yīng)用于旅行時(shí)間的計(jì)算外,還適合很多智能交通的應(yīng)用場(chǎng)景,如交通流的計(jì)算等。

      目前HBase跨列族的數(shù)據(jù)訪問(wèn)效率較低[5],故本文的識(shí)別數(shù)據(jù)表采用一個(gè)列族來(lái)存放識(shí)別數(shù)據(jù)。

      2.4 旅行時(shí)間并行計(jì)算

      在描述具體算法前先介紹以下定義:

      (1) HashMap() trackMap,存放每輛車的軌跡數(shù)據(jù),key為車牌號(hào),value為該車經(jīng)過(guò)不同監(jiān)測(cè)點(diǎn)的時(shí)間和監(jiān)測(cè)點(diǎn)ID拼接成的字符串構(gòu)成的列表。

      (2) HashMap() sectionMap,存放該時(shí)段內(nèi)不同車輛在該路段的旅行時(shí)間,key為路段,value為不同車輛經(jīng)過(guò)該路段的旅行時(shí)間構(gòu)成的列表。

      (3) startTime,旅行時(shí)間計(jì)算的起始時(shí)間。

      (4) stopTime,旅行時(shí)間計(jì)算的停止時(shí)間。

      (5) result,給定時(shí)間范圍內(nèi)的HBase數(shù)據(jù)集。

      (6) List travelTime,各路段在給定時(shí)段的旅行時(shí)間。

      單個(gè)時(shí)段旅行時(shí)間計(jì)算算法(STP)描述如下:

      INPUT:startTime,stopTime

      OUTPUT:OUTPUT :travelTime

      Begin

      根據(jù)startTime,和stopTime,設(shè)定HBase掃描起止行鍵;

      根據(jù)起止行鍵掃描HBase,得到查詢結(jié)果集result;

      遍歷result,得到不同車輛的軌跡數(shù)據(jù)trackMap;

      遍歷trackMap,比對(duì)路段信息,得到不同車輛經(jīng)過(guò)不同路段的旅行時(shí)間travelTimeMap;

      遍歷travelTimeMap;

      If 路段的旅行時(shí)間list非空,取總旅行時(shí)間的均值,并將結(jié)果存放在travelTime中

      End

      連續(xù)時(shí)段旅行時(shí)間計(jì)算算法(MTP):

      對(duì)于多個(gè)連續(xù)時(shí)間段的旅行時(shí)間計(jì)算,本文采用多線程的方法,并行對(duì)各個(gè)時(shí)間段的旅行時(shí)間進(jìn)行處理。

      圖2是旅行時(shí)間計(jì)算過(guò)程中數(shù)據(jù)流動(dòng)示意圖,由最初存儲(chǔ)在HBase中的車牌識(shí)別數(shù)據(jù),經(jīng)過(guò)多層處理,得到不同路段的旅行時(shí)間。

      圖2 旅行時(shí)間計(jì)算數(shù)據(jù)流動(dòng)

      3 實(shí)驗(yàn)分析

      實(shí)驗(yàn)平臺(tái)物理架構(gòu)見(jiàn)圖3。

      各模塊設(shè)備配置:三臺(tái)雙核3.0 GHz CPU和4G內(nèi)存的Loadrunner服務(wù)器,使用Loadrunner模擬識(shí)別數(shù)據(jù)的實(shí)時(shí)寫入過(guò)程。4個(gè)節(jié)點(diǎn)的HBase集群,1個(gè)主節(jié)點(diǎn),3個(gè)從節(jié)點(diǎn)。集群配置為四核2.4GHz CPU,8GB內(nèi)存,CentOS 6.4 64位操作系統(tǒng),Hadoop版本為1.2.1,HBase版本為0.94.14。

      實(shí)驗(yàn)方法:首先對(duì)單個(gè)時(shí)段旅行時(shí)間計(jì)算進(jìn)行對(duì)比分析,選取5分鐘和15分鐘作為基本計(jì)算時(shí)段;然后對(duì)多時(shí)段的旅行時(shí)間采用MTP方法計(jì)算,以15分鐘作為基本的旅行時(shí)間計(jì)算單位。

      綜合分析以上結(jié)果,可以發(fā)現(xiàn),HBase和Oracle的計(jì)算時(shí)間變化基本吻合,且計(jì)算時(shí)間優(yōu)于Oracle,而且二者進(jìn)行并行計(jì)算的總時(shí)間也與數(shù)據(jù)量呈正相關(guān)關(guān)系。

      通過(guò)以上實(shí)驗(yàn)可以看出,通過(guò)HBase存儲(chǔ)車牌識(shí)別數(shù)據(jù)并在此基礎(chǔ)上計(jì)算旅行時(shí)間,其性能優(yōu)于傳統(tǒng)的Oracle數(shù)據(jù)庫(kù),對(duì)于全樣數(shù)據(jù)下的旅行時(shí)間計(jì)算,計(jì)算時(shí)間和數(shù)據(jù)量呈正相關(guān)。相對(duì)Oracle,HBase具有很強(qiáng)的擴(kuò)展性。

      4 結(jié)語(yǔ)

      本文試驗(yàn)性地將交通監(jiān)測(cè)數(shù)據(jù)由傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)遷移到新型NoSQL數(shù)據(jù)庫(kù)HBase上,并在此基礎(chǔ)上進(jìn)行了道路旅行時(shí)間的計(jì)算,對(duì)于處理這一類時(shí)序數(shù)據(jù)具有借鑒意義。由實(shí)驗(yàn)可以看出,相對(duì)關(guān)系數(shù)據(jù)庫(kù),HBase在計(jì)算旅行時(shí)間時(shí)性能提升2~3倍,而且HBase集群容易大規(guī)模擴(kuò)展,可以作為構(gòu)建大規(guī)模數(shù)據(jù)存儲(chǔ)系統(tǒng)的基礎(chǔ)存儲(chǔ)架構(gòu)。

      參考文獻(xiàn):

      [1] LARS GEORGE.HBase 權(quán)威指南[M].代志遠(yuǎn),劉佳,蔣杰,譯.北京:人民郵電出版社,2013.

      [2] 陳慶奎,周利珍.基于HBASE的大規(guī)模無(wú)線傳感網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2012,32(7):19201923,1977.

      [3] 柴華駿,李瑞敏,郭敏.基于車牌識(shí)別數(shù)據(jù)的城市道路旅行時(shí)間分布規(guī)律及估計(jì)方法研究[J].交通運(yùn)輸系統(tǒng)工程與信息,2012,12(6):4147.

      猜你喜歡
      智能交通
      基于自適應(yīng)虛擬線圈的多車道車流量檢測(cè)算法
      大數(shù)據(jù)時(shí)代城市智能交通的數(shù)據(jù)技術(shù)
      智能交通中的車輛檢測(cè)專利技術(shù)綜述
      西充县| 敦煌市| 贡山| 广丰县| 濉溪县| 多伦县| 滨海县| 油尖旺区| 富宁县| 锦州市| 灵宝市| 海安县| 嘉祥县| 徐汇区| 安龙县| 宕昌县| 湘潭县| 海林市| 垫江县| 舟曲县| 宣汉县| 平邑县| 田东县| 米林县| 陕西省| 五大连池市| 获嘉县| 乐业县| 江永县| 海伦市| 普兰县| 屏南县| 射阳县| 原阳县| 罗源县| 大埔区| 礼泉县| 枣庄市| 昭苏县| 久治县| 威远县|