陳 媛徐 潔江蘇省生態(tài)環(huán)境監(jiān)控中心
?
大數(shù)據(jù)在危廢運(yùn)輸車輛GPS監(jiān)控中的應(yīng)用
陳 媛1徐 潔2
江蘇省生態(tài)環(huán)境監(jiān)控中心
link
評(píng)估值120萬(wàn)
appraisement
行業(yè)曲線
industry
本文提出了將HBase應(yīng)用于存儲(chǔ)危廢運(yùn)輸車輛監(jiān)控大數(shù)據(jù)的方案,本文通過(guò)將該技術(shù)應(yīng)用在危廢運(yùn)輸車輛監(jiān)控系統(tǒng)中的實(shí)現(xiàn)過(guò)程,并對(duì)系統(tǒng)做了測(cè)試分析方法,論證了基于HBase構(gòu)建在 Hadoop的 HDFS之上,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)隨機(jī)、實(shí)時(shí)的訪問(wèn);基于HDFS分布式文件系統(tǒng),數(shù)據(jù)庫(kù)不用再去考慮分布式的問(wèn)題,能夠存儲(chǔ)(壓縮與擴(kuò)展)和管理海量數(shù)據(jù)。得出了HBase應(yīng)用于車輛監(jiān)控系統(tǒng)有很高的吞吐率,并且具有很好的擴(kuò)展性。
危險(xiǎn)廢物運(yùn)輸是危廢管理的一個(gè)重要環(huán)節(jié),對(duì)危廢運(yùn)輸車輛實(shí)行GPS監(jiān)控是一種行之有效的監(jiān)管手段。江蘇省環(huán)保廳自2013年開(kāi)始建設(shè)全省統(tǒng)一的危險(xiǎn)廢物動(dòng)態(tài)管理系統(tǒng),通過(guò)對(duì)全省危險(xiǎn)廢物產(chǎn)生、轉(zhuǎn)移、處置信息的全面采集和全程跟蹤,使危廢管理部門(mén)及時(shí)、準(zhǔn)確掌握區(qū)域內(nèi)危險(xiǎn)廢物的動(dòng)態(tài)信息,采用智能化的數(shù)據(jù)分析手段,自動(dòng)發(fā)現(xiàn)各類弄虛作假現(xiàn)象,加大對(duì)危險(xiǎn)廢物產(chǎn)生、交換、轉(zhuǎn)移、利用、處理處置全過(guò)程的監(jiān)管力度,防止和減少違法事件。為實(shí)現(xiàn)對(duì)危廢運(yùn)輸過(guò)程的監(jiān)控,江蘇省環(huán)保廳利用江蘇省交管局在危險(xiǎn)運(yùn)輸車輛上已安裝的GPS定位設(shè)備,實(shí)時(shí)獲取全省所有危廢運(yùn)輸車輛的行進(jìn)軌跡,并與每筆轉(zhuǎn)移聯(lián)單進(jìn)行關(guān)聯(lián),實(shí)時(shí)分析轉(zhuǎn)移過(guò)程是否存在異常。隨著監(jiān)控對(duì)象數(shù)量的不斷增加,在海量監(jiān)控對(duì)象的環(huán)境下,設(shè)計(jì)實(shí)現(xiàn)高效的GPS危廢車輛監(jiān)控系統(tǒng),成為危險(xiǎn)廢物運(yùn)輸管理面臨的新的問(wèn)題。
但國(guó)內(nèi)外相關(guān)研究在設(shè)計(jì)上對(duì)大數(shù)據(jù)環(huán)境下的GPS車輛監(jiān)控?cái)?shù)據(jù)庫(kù)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)沒(méi)有進(jìn)行深入的探討與研究,在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)環(huán)境下處理全省上千輛危廢運(yùn)輸車輛的實(shí)時(shí)GPS數(shù)據(jù),數(shù)據(jù)庫(kù)的壓力將非常大,查詢性能也隨之降低,達(dá)不到實(shí)時(shí)性要求。本項(xiàng)目采用Hbase替代了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和處理數(shù)據(jù),研究在大數(shù)據(jù)環(huán)境下的系統(tǒng)設(shè)計(jì)來(lái)滿足應(yīng)用需要。
HDFS分布式文件系統(tǒng)
HDFS主要用于對(duì)危廢車輛監(jiān)控?cái)?shù)據(jù)為主的海量數(shù)據(jù)提供分布式存儲(chǔ)與管理,以利于數(shù)據(jù)規(guī)模不斷增加的情況下的分布式并行存儲(chǔ)調(diào)用。
在HDFS分布式文件系統(tǒng)中,大文件被拆分為若干塊存儲(chǔ),并實(shí)現(xiàn)并行讀取,其對(duì)數(shù)據(jù)的管理呈現(xiàn)以下特點(diǎn):
支持大量GB級(jí)至TB級(jí)的海量數(shù)據(jù)的分布式存儲(chǔ);
文件具有一次寫(xiě)多次讀的特點(diǎn);
系統(tǒng)支持大規(guī)模流式讀取和隨機(jī)讀??;
通過(guò)分布式讀取方式實(shí)現(xiàn)高I/O吞吐率。
Hbase介紹
HBase 是一個(gè)開(kāi)源、分布式、面向列存儲(chǔ)、可伸縮的非關(guān)系數(shù)據(jù)庫(kù),HBase構(gòu)建在 Hadoop的 HDFS之上,用于對(duì)海量數(shù)據(jù)隨機(jī)、實(shí)時(shí)的訪問(wèn)。HBase 存儲(chǔ)的超級(jí)達(dá)標(biāo)可以有上億行,百萬(wàn)列。在 HBase 中創(chuàng)建的一張表可以被拆分成多塊,每一塊稱為一個(gè) HRegion,一張完整的表可以保存在多個(gè) HRegion 上,如圖所示。每一個(gè) HRegion 在物理上會(huì)被分為三個(gè)部分:HMemcache(緩存)、HLog(日志)、HStore(持久層)。
HBase 以表的形式存儲(chǔ)數(shù)據(jù)。表由行和列組成。列劃分為若干個(gè)列族(Column family), 一行由 RowKey,時(shí)間戳和若干個(gè)列組成。除了 RowKey 和時(shí)間戳外,其他的列稱為列族。HBase 表中的每個(gè)列,都?xì)w屬于某個(gè)列族。列族是表的 schema 的一部分,必須在使用表之前定義。列名都以列族作為前綴。RowKey 就像關(guān)系數(shù)據(jù)庫(kù)的主鍵,用來(lái)檢索記錄。表中所有的記錄按 RowKey 來(lái)排序,訪問(wèn)HBase 表的記錄有三種方式,分別是:
圖1 Hbase技術(shù)關(guān)系圖
圖2 系統(tǒng)整體架構(gòu)圖
通過(guò)單個(gè) RowKey 訪問(wèn);2)通過(guò) RowKey 的range;3)全表掃描。
同時(shí)HBase采用稀疏存儲(chǔ)結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),將類型相同或邏輯上相關(guān)的列存儲(chǔ)在同一個(gè)列組中,使數(shù)據(jù)在實(shí)際的存儲(chǔ)位置上路徑相近,從而加快系統(tǒng)的讀寫(xiě)性能。
根據(jù)車輛監(jiān)控系統(tǒng)的數(shù)據(jù)特點(diǎn),以及HBase的自身特點(diǎn),不難發(fā)現(xiàn)HBase應(yīng)用于車輛監(jiān)控系統(tǒng)的優(yōu)勢(shì),有如下幾點(diǎn):
適合大量插入,有很高的吞吐量;key-value查詢,可以輸入一個(gè)key查詢一個(gè)value,還可以輸入一組key查詢一組value。
實(shí)時(shí)的按時(shí)間鍵值做查詢,響應(yīng)速度非???。
列式數(shù)據(jù)庫(kù)會(huì)把相同列的數(shù)據(jù)都放在一塊即列為單位存儲(chǔ),當(dāng)查詢某一列的時(shí)候只需要調(diào)出相應(yīng)的塊即可,這樣可以減少很多 I/O,提高了系統(tǒng)的性能。
列族里的列可以動(dòng)態(tài)擴(kuò)展,能夠滿足監(jiān)控系統(tǒng)監(jiān)控項(xiàng)目增多的要求。
列族里的列可以動(dòng)態(tài)擴(kuò)展,能夠滿足監(jiān)控系統(tǒng)監(jiān)控項(xiàng)目增多的要求。
MapR educe分布式編程框架
MapReduce是由Google提出的一個(gè)軟件架構(gòu)。HDFS和HBase實(shí)現(xiàn)了在此基礎(chǔ)上的由編程框架自動(dòng)控制的、對(duì)用戶透明的計(jì)算資源的并行調(diào)度和數(shù)據(jù)同步機(jī)制,一個(gè)典型的MapReduce計(jì)算可以處理上千個(gè)計(jì)算節(jié)點(diǎn)中的GB級(jí)至TB級(jí)數(shù)據(jù)。
因此,Hadoop 的 MapReduce 支持 HBase 作為InputFormat,可以支持后期的數(shù)據(jù)分析;監(jiān)控系統(tǒng)運(yùn)用它可以用來(lái)作交通狀況的分析。
總體架構(gòu)設(shè)計(jì)
車輛監(jiān)控系統(tǒng)總體上可以分為三個(gè)部分:車載終端、GPS 網(wǎng)關(guān)和車輛監(jiān)控服務(wù)平臺(tái)。
車載終端是安裝在車輛上的終端設(shè)備,定時(shí)將車輛的位置信息和狀態(tài)信息發(fā)送給服務(wù)器,通過(guò)運(yùn)營(yíng)商基站與網(wǎng)關(guān)通信。
網(wǎng)關(guān)是車輛監(jiān)控服務(wù)平臺(tái)和車載終端之間的信息中轉(zhuǎn)站,負(fù)責(zé)接收車載終端發(fā)送的定位信息和車輛狀態(tài)信息等,在網(wǎng)關(guān)進(jìn)行緩存,并同步轉(zhuǎn)發(fā) 到數(shù)據(jù)庫(kù)服務(wù)器上。
車輛監(jiān)控服務(wù)平臺(tái)負(fù)責(zé)提供后臺(tái)管理,并根據(jù)從網(wǎng)關(guān)接收的車輛位置信息和狀態(tài)信息,為客戶提供車輛信息監(jiān)管、定位跟蹤和歷史軌跡等綜合性的服務(wù)功能,該平臺(tái)部署在平臺(tái)服務(wù)器上。
車輛監(jiān)控GPS數(shù)據(jù)特點(diǎn)
在車輛管理中,系統(tǒng)對(duì)車輛的監(jiān)控?cái)?shù)據(jù)呈現(xiàn)如下特點(diǎn):
需要不斷采集車輛的運(yùn)行信息,如經(jīng)緯度、里程數(shù)等。這些參數(shù)在車輛內(nèi)的采集頻率非常高,如果 10 s采集一次,一共有 10 萬(wàn)輛車需要管理,那么平均每秒要插入10000 條數(shù)據(jù),以車輛每天運(yùn)營(yíng) 8 h,每天 的數(shù)據(jù)量將達(dá)到 1000083600=2.88 億。日積月累,數(shù)據(jù)量變的非常龐大。
在高峰時(shí)期,當(dāng)有上萬(wàn)輛車同時(shí)運(yùn)行時(shí),瞬間寫(xiě)入量非常大,要求系統(tǒng)有非常高的吞吐量。
在對(duì)車輛實(shí)時(shí)監(jiān)控過(guò)程中,系統(tǒng)的響應(yīng)速度要非???,對(duì)系統(tǒng)的實(shí)時(shí)性要求很高。
系統(tǒng)對(duì)數(shù)據(jù)的操作主要是兩種:插入和查詢;很少用到刪除和更新。
隨著車輛采集的數(shù)據(jù)項(xiàng)會(huì)越來(lái)越多,要求系統(tǒng)有很好的擴(kuò)展性。
Hbase表結(jié)構(gòu)設(shè)計(jì)
建立一張大表,表名為GPS809REAL,包含車輛的所有信息,為了便于用戶的查詢,以車牌號(hào)碼+時(shí)間作為為RowKey。
設(shè)備號(hào)主要用于管理員來(lái)查詢數(shù)據(jù),車牌號(hào)方便普通用戶查詢。定義一個(gè)車輛信息info的列族,該列族主要有以下幾列:車輛品牌(brand),車型(model),顏色(COLOR),服務(wù)狀態(tài)(STATE),速度(SPEED),SPEEDR,MILES,方向(DIRECTION),ALTITUDE,ALARM等等。
表2 集群節(jié)點(diǎn)配置
實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)運(yùn)行在一個(gè)6個(gè)節(jié)點(diǎn)的Hadoop集群上,DataNode節(jié)點(diǎn)5個(gè),NameNode節(jié)點(diǎn)1個(gè),HMaster節(jié)點(diǎn)1個(gè),RegionServer節(jié)點(diǎn)5個(gè),Zookeeper節(jié)點(diǎn)3個(gè)。具體配置如表2所示。
實(shí)驗(yàn)結(jié)果
為測(cè)試環(huán)境監(jiān)測(cè)數(shù)據(jù)的數(shù)據(jù)導(dǎo)入及數(shù)據(jù)查詢性能,對(duì)數(shù)據(jù)總記錄數(shù)10億條,單行記錄大于1Kb的情況進(jìn)行了導(dǎo)入測(cè)試及數(shù)據(jù)查詢的性能測(cè)試,性能測(cè)試的結(jié)果如表3所示。該實(shí)驗(yàn)結(jié)果表明,本文提出的基于HBase的數(shù)據(jù)存儲(chǔ)模型具有高效的存儲(chǔ)效率和查詢效率,滿足實(shí)際需求對(duì)數(shù)據(jù)存儲(chǔ)和訪問(wèn)的性能要求。
表3 性能測(cè)試結(jié)果
本文提出了一種新的存儲(chǔ)車輛監(jiān)控?cái)?shù)據(jù)的方案,重點(diǎn)闡述了HBase數(shù)據(jù)庫(kù)用于車輛監(jiān)控系統(tǒng)的優(yōu)勢(shì)以及把它應(yīng)用在系統(tǒng)中的實(shí)現(xiàn)過(guò)程,并對(duì)系統(tǒng)做了測(cè)試分析,結(jié)果表明,該系統(tǒng)有很高的吞吐率,并且具有很好的擴(kuò)展性。在未來(lái)的工作中,我們將不斷豐富該系統(tǒng)的功能,添加更多的監(jiān)控項(xiàng)目,不斷優(yōu)化集群節(jié)點(diǎn)的數(shù)目以找到使系統(tǒng)達(dá)到最佳性能的節(jié)點(diǎn)數(shù)。當(dāng)系統(tǒng)運(yùn)行到一定階段,我們將對(duì)收集到監(jiān)控?cái)?shù)據(jù)作數(shù)據(jù)分析,以便為用戶提供個(gè)性化服務(wù),給企業(yè)在未來(lái)的工作中提供更好的決策。
10.3969/j.issn.101- 8972.2016.12.030