呂江波,張永忠
(1.蘭州交通大學,甘肅 蘭州 730070; 2.蘭州市勘察測繪研究院,甘肅 蘭州 730030)
?
Hadoop支持下海量出租車軌跡數(shù)據(jù)預處理技術(shù)研究
呂江波1,2,張永忠1,2
(1.蘭州交通大學,甘肅 蘭州730070;2.蘭州市勘察測繪研究院,甘肅 蘭州730030)
摘要:海量出租車軌跡數(shù)據(jù)預處理是軌跡數(shù)據(jù)挖掘和應用的前提。出租車軌跡數(shù)據(jù)是典型的大數(shù)據(jù),傳統(tǒng)的數(shù)據(jù)處理技術(shù)無法解決大規(guī)模出租車軌跡數(shù)據(jù)誤差分析和處理問題,文章在分析軌跡數(shù)據(jù)誤差來源和誤差類型的基礎(chǔ)上,提出基于Hadoop的海量出租車軌跡數(shù)據(jù)預處理模型,使用Hive實現(xiàn)軌跡數(shù)據(jù)誤差統(tǒng)計分析,設(shè)計MapReduce并行處理程序?qū)崿F(xiàn)軌跡數(shù)據(jù)預處理。實驗結(jié)果表明,該模型可以有效解決大規(guī)模出租車軌跡數(shù)據(jù)預處理問題,處理方式可靠性較高,大大提高了軌跡數(shù)據(jù)預處理效率,為后期軌跡數(shù)據(jù)深入挖掘和分析奠定了基礎(chǔ)。
關(guān)鍵詞:軌跡數(shù)據(jù);Hadoop;大數(shù)據(jù);數(shù)據(jù)預處理;并行計算
1引言
隨著衛(wèi)星定位技術(shù)、無線通信技術(shù)和地理信息技術(shù)的迅速發(fā)展,定位設(shè)備在車載以及移動終端上得到廣泛使用。許多城市的出租車都裝載了定位設(shè)備,這些設(shè)備會定時將其位置信息傳至服務中心,由此匯聚而成大規(guī)模的出租車軌跡數(shù)據(jù)。這些軌跡數(shù)據(jù)包含大量信息,已經(jīng)開始應用于很多重要領(lǐng)域,如城市規(guī)劃、智能交通、人類行為模式研究以及能源消耗等。近年來,由鄭宇主導的“城市計算”,掀起了對GPS軌跡數(shù)據(jù)處理和分析的熱潮。他們通過出租車在某區(qū)域的連通性評判區(qū)域規(guī)劃的好壞;利用出租車軌跡數(shù)據(jù)感知交通流量,為用戶提供最快駕車路線和最佳拼車方案;利用出租車軌跡數(shù)據(jù)為出租車司機提供最短時間拉到乘客的方案以及為乘客推薦最可能打到車的地點[1]。童曉君利用出租車軌跡數(shù)據(jù)分析居民出行熱點區(qū)域和出行行為[2]。張富崢利用出租車在加油站等待時間估計加油站的排隊長度,從而估計出此時加油站內(nèi)車輛數(shù)量以及加油量。將全城加油站數(shù)據(jù)匯總,便可以計算出任意時刻有多少燃油被消耗掉[3]。與此同時,軌跡數(shù)據(jù)應用也面臨著諸多挑戰(zhàn),首先,GPS定位誤差和人為因素導致軌跡數(shù)據(jù)存在許多不合理數(shù)據(jù),這些數(shù)據(jù)嚴重影響數(shù)據(jù)分析結(jié)果,因此,數(shù)據(jù)預處理成為軌跡數(shù)據(jù)應用首先要解決的問題;其次,軌跡數(shù)據(jù)是典型的大數(shù)據(jù),以一個城市為單元,一天的出租車軌跡數(shù)據(jù)量大小從幾GB到幾十GB不等,多日的數(shù)據(jù)更可達TB、PB量級,常規(guī)的數(shù)據(jù)處理方式要處理如此大規(guī)模的數(shù)據(jù)幾乎是不可能的,即使勉強可以處理,也需要花費很高的時間成本。大數(shù)據(jù)時代的到來,為海量軌跡數(shù)據(jù)處理提供了解決方案,Hadoop作為目前主流的開源大數(shù)據(jù)分析平臺之一,為海量數(shù)據(jù)分布式并行處理提供強大的平臺支撐。Hadoop可以運行在廉價硬件構(gòu)建的計算機集群上,能夠?qū)Υ罅繑?shù)據(jù)進行可靠的、高效的、可擴展的分布式處理。
針對上述出租車軌跡應用中存在的數(shù)據(jù)誤差和數(shù)據(jù)量大難處理兩大問題,本文以Hadoop平臺為基礎(chǔ),通過分析軌跡數(shù)據(jù)誤差來源,總結(jié)誤差類型,研究誤差統(tǒng)計分析方法和處理方法,在此基礎(chǔ)上提出基于Hadoop的軌跡數(shù)據(jù)預處理模型,實驗證明該模型可以有效分析和處理海量軌跡數(shù)據(jù)誤差,解決軌跡數(shù)據(jù)量大的處理瓶頸,處理方式更加可靠、高效。
2基于Hadoop的出租車軌跡數(shù)據(jù)預處理模型研究
2.1軌跡數(shù)據(jù)誤差來源
由于GPS定位本身存在誤差,加之出租車在實時動態(tài)獲取數(shù)據(jù),道路交通狀態(tài)復雜性等原因,在海量的出租車軌跡數(shù)據(jù)中存在許多不合理數(shù)據(jù),雖然大數(shù)據(jù)分析中有少許錯誤數(shù)據(jù)不會對分析結(jié)果產(chǎn)生影響,但也要具體問題具體分析,少許的錯誤數(shù)據(jù)也會使結(jié)果相差很多。例如:在計算出租車行駛距離時,因為位置偏離使用錯誤的GPS定位坐標計算的距離肯定相差很多,嚴重影響計算結(jié)果。我們將這些導致不合理數(shù)據(jù)的原因大致分為兩類:一類是與GPS設(shè)備有關(guān)的誤差,一類是與人為因素有關(guān)的誤差。
(1)與GPS設(shè)備有關(guān)的誤差。主要有多路徑效應誤差、GPS信號遮擋誤差和GPS設(shè)備故障。多路徑效應誤差產(chǎn)生的原因是當出租車行駛到有高大建筑物或水面附近時,建筑物和水面對于電磁波具有強反射作用,產(chǎn)生的反射波進入接收天線時與直接來自衛(wèi)星的信號產(chǎn)生干涉,從而使觀測值偏離真值產(chǎn)生的誤差。GPS設(shè)備因建筑遮擋或外界有較強的電磁干擾等因素導致接收裝置無法獲取衛(wèi)星信號,隨機產(chǎn)生與真值相差較大的位置數(shù)據(jù),產(chǎn)生“偏離現(xiàn)象”,這種現(xiàn)象在隧道行駛時特別嚴重。GPS設(shè)備出現(xiàn)故障后未及時排除,設(shè)備采集的位置、時間和出租車狀態(tài)等信息都會出現(xiàn)錯誤[4]。
(2)與人為因素有關(guān)的誤差,由于司機關(guān)閉車載設(shè)備,導致GPS數(shù)據(jù)間斷傳輸,這樣數(shù)據(jù)就會不連續(xù),在關(guān)閉車載設(shè)備的時間段GPS數(shù)據(jù)空白,在連續(xù)計算行駛距離或時間時出現(xiàn)錯誤。司機未規(guī)范使用計價器,導致數(shù)據(jù)中出租車行駛狀態(tài)與實際不符,分析軌跡數(shù)據(jù)發(fā)現(xiàn)個別出租車全天的車輛行駛狀態(tài)都是空車或載客,這明顯與實際不符。
2.2軌跡數(shù)據(jù)誤差分類
通過對軌跡樣本數(shù)據(jù)分析,對計算結(jié)果產(chǎn)生較大影響的誤差類型有以下幾類:
(1)經(jīng)緯度出界。用經(jīng)緯度描述軌跡點的位置,由于GPS設(shè)備誤差導致軌跡點嚴重偏離超出研究區(qū)域范圍的數(shù)據(jù)均為不合理數(shù)據(jù)[2]。
(2)采集時間錯誤。主要有時間格式錯誤和時間無效。
(3)車輛狀態(tài)錯誤。車輛狀態(tài)0表示空駛,1表示載客。如果出租車全天空駛、全天載客或車輛狀態(tài)存在非0或非1的值,則這些都是不合理數(shù)據(jù)[2]。
(4)數(shù)據(jù)丟失。出租車軌跡是由許多在時間上相對連續(xù)的軌跡點構(gòu)成,超出 15 min不連續(xù)的軌跡點數(shù)據(jù)應該作為兩條軌跡的分割點。
(5)其他軌跡數(shù)據(jù)錯誤,主要有瞬時速度和行駛方向數(shù)值異常等。
2.3Hadoop技術(shù)體系
Hadoop是一個分布式計算框架,它能在大量廉價的硬件設(shè)備組成的集群上運行海量數(shù)據(jù)并進行分布式計算。他處理的海量數(shù)據(jù)能達到PB級別,并且可以讓應用程序在上千個節(jié)點中進行分布式處理。Hadoop優(yōu)點主要有:Hadoop是低成本的,Hadoop是開源軟件,這樣就可以降低成本,此外,不必購買服務器級別的硬件,便可以搭建一個強大的Hadoop集群;Hadoop是可靠的,它假設(shè)計算過程和存儲會失敗,因此它維護多個工作數(shù)據(jù)副本,對失敗的節(jié)點重新處理;Hadoop是高效的,通過并行處理加快處理速度;Hadoop還是可伸縮的,如果數(shù)據(jù)量增大或要求提高數(shù)據(jù)處理效率,Hadoop集群可以通過提升硬件性能或增加節(jié)點數(shù)量實現(xiàn)擴展。Hadoop主要由分布式存儲HDFS和分布式計算MapReduce兩部分構(gòu)成。HDFS是一個類似于Google GFS的開源分布式文件系統(tǒng),它提供一個可擴展、高可靠、高可用的大規(guī)模數(shù)據(jù)分布式存儲管理系統(tǒng),基于物理上分布在各個數(shù)據(jù)存儲節(jié)點的本地Linux系統(tǒng)的文件系統(tǒng),為上層應用程序提供一個邏輯上成為整體的大規(guī)模數(shù)據(jù)存儲文件系統(tǒng)。MapReduce并行計算框架是一個并行化程序執(zhí)行系統(tǒng)。它提供了一個包含Map和Reduce兩個階段的并行化處理模型和過程,提供一個并行化編程模型和接口,讓程序員可以方便快速地編寫大數(shù)據(jù)并行處理程序。此外,隨著Apache Hadoop系統(tǒng)開源化發(fā)展,Hadoop平臺已經(jīng)演進為一個包含許多相關(guān)子系統(tǒng)的完整的大數(shù)據(jù)處理系統(tǒng),這些子系統(tǒng)有:HBase、Hive、Pig、Zookeeper、Avro等[5~7]。
2.4數(shù)據(jù)預處理模型
軌跡數(shù)據(jù)誤差不可避免,而且在海量軌跡數(shù)據(jù)中誤差數(shù)據(jù)的總量不容小覷,嚴重影響計算結(jié)果。為了剔除海量軌跡數(shù)據(jù)中不合理數(shù)據(jù),提高處理效率,保證分析結(jié)果的正確性,本文提出了基于Hadoop的出租車軌跡數(shù)據(jù)預處理模型,具體模型如圖1所示:
首先對原始數(shù)據(jù)進行抽樣分析,找出數(shù)據(jù)存在的問題,結(jié)合誤差來源,進行誤差分類,誤差分類的結(jié)果是誤差統(tǒng)計分析和誤差處理的直接依據(jù)。為了處理海量軌跡數(shù)據(jù),該模型運行在Hadoop集群上,其中HDFS負責數(shù)據(jù)分布式存儲,MapReduce負責數(shù)據(jù)并行處理。軌跡數(shù)據(jù)源文件通常是由許多小于64 M的小文件組成,為了避免大量小文件引起的Hadoop運行效率低問題,編寫小文件合并程序,合并后的軌跡文件直接存儲在HDFS上。然后,在Hadoop集群上部署Hive組件,Hive組件管理Hadoop中存儲的數(shù)據(jù),并提供類似SQL的查詢語言,快速實現(xiàn)數(shù)據(jù)抽取、轉(zhuǎn)換和加載,實質(zhì)是將用戶定制的類似SQL查詢語言轉(zhuǎn)換為MapReduce程序[6]。根據(jù)誤差分類結(jié)果,使用Hive工具對軌跡數(shù)據(jù)誤差進行統(tǒng)計分析。最后,針對各類誤差類型編寫MapReduce數(shù)據(jù)預處理程序,完成數(shù)據(jù)清洗。MapReduce程序主要有Map函數(shù)和Reduce函數(shù)組成,Map負責把任務分解成多個任務,Reduce負責把分解后多任務處理的結(jié)果匯總起來,一些簡單的數(shù)據(jù)預處理可以交給Map,例如:數(shù)值超界、數(shù)值異常、格式校驗等。復雜一些的數(shù)據(jù)預處理需要Map和Reduce相互配合。
3應用實例
為了驗證本文所提出的基于Hadoop的出租車軌跡數(shù)據(jù)預處理模型的可行性,以深圳市出租車軌跡數(shù)據(jù)預處理為應用案例進行測試。
3.1數(shù)據(jù)概況
本文采用深圳市13 799輛出租車2011年4月18日~2011年4月26日共9天的軌跡數(shù)據(jù)。軌跡數(shù)據(jù)文件均以車牌號命名,數(shù)據(jù)文件采用csv格式存儲,共 13 799個文件,約2億條記錄,數(shù)據(jù)量大小約為 11 G。數(shù)據(jù)文件記錄了車牌號、采集時間、經(jīng)度、緯度、行駛速度、行駛方向和車輛狀態(tài)。表1為軌跡數(shù)據(jù)文件結(jié)構(gòu),表2為軌跡樣例數(shù)據(jù)。
3.2環(huán)境搭建
本研究使用VMware在一臺高性能的服務器上搭建7臺虛擬機集群,其中1臺為主節(jié)點,其余6臺為數(shù)據(jù)節(jié)點。主節(jié)點配置8核中央處理器,8 G內(nèi)存,數(shù)據(jù)節(jié)點配置4核中央處理器,4 G內(nèi)存,操作系統(tǒng)均為64位CentOS7,并行計算環(huán)境基于Hadoop2.6,在Hadoop上部署hive1.2.1組件[8]。
3.3技術(shù)路線
對實驗數(shù)據(jù)進行抽樣查看,發(fā)現(xiàn)存在經(jīng)緯度超界、采集時間錯誤、車輛狀態(tài)錯誤和數(shù)據(jù)丟失問題,按照上述出租車軌跡數(shù)據(jù)預處理模型對實驗數(shù)據(jù)進行預處理,具體內(nèi)容如下:
(1)由于實驗數(shù)據(jù)是由13 799個文件組成,單個文件大小 1 MB左右,為了避免大量小文件引起的Hadoop運行效率低問題,編寫程序?qū)崿F(xiàn)小文件合并。具體思路是:從本地文件夾中讀取文件,為了保證每行數(shù)據(jù)的完整性按照逐行讀取方式讀取數(shù)據(jù),循環(huán)累計到單個文件達到閾值直接將文件保存到HDFS,新建另一個文件開始輸出,直到所有文件讀取結(jié)束[9,10]。
(2)按照軌跡數(shù)據(jù)誤差類型,分別構(gòu)造經(jīng)緯度超界、采集時間錯誤、車輛狀態(tài)錯誤Hive查詢規(guī)則,并在Hadoop集群上運行,統(tǒng)計各類誤差類型總數(shù),抽取錯誤數(shù)據(jù)樣例。
(3)針對各類誤差數(shù)據(jù),編寫MapReduce并行處理程序剔除這些不合理數(shù)據(jù)。軌跡大數(shù)據(jù)分析時經(jīng)常需要進行路徑分析,數(shù)據(jù)丟失問題會導致路徑起始點錯誤,需要單獨編寫程序進行處理,本次實驗處理的方法是將超出 15 min不連續(xù)的軌跡點作為兩條軌跡的分割點。
3.4實驗結(jié)果
根據(jù)上述技術(shù)路線,對深圳市13 799輛出租車9天的軌跡數(shù)據(jù)進行預處理,分析得出,錯誤數(shù)據(jù)約占6.68%,其中車輛狀態(tài)錯誤約占6.21%,經(jīng)緯度出界約占0.4%,采集時間錯誤約占0.08%。編寫數(shù)據(jù)預處理程序共剔除1.14千萬條錯誤數(shù)據(jù),耗時約 10 min。實驗證明基于Hadoop的出租車軌跡數(shù)據(jù)預處理模型可以有效處理大規(guī)模軌跡數(shù)據(jù)中的常見的錯誤數(shù)據(jù),運行可靠性較高,大大提高了軌跡數(shù)據(jù)預處理效率。實驗數(shù)據(jù)誤差統(tǒng)計分析結(jié)果如表3所示。
4結(jié)語
大數(shù)據(jù)時代的到來給海量出租車軌跡數(shù)據(jù)分析和應用提供了可能,而Hadoop作為目前重要的并行計算平臺,為大數(shù)據(jù)的存儲、管理和處理提供了技術(shù)支撐。本文認真分析了軌跡數(shù)據(jù)誤差來源,對軌跡數(shù)據(jù)誤差類型進行分類,在此基礎(chǔ)上,結(jié)合Hadoop并行計算平臺,提出基于Hadoop的出租車軌跡數(shù)據(jù)預處理模型。最后,本文對所提出的模型進行了驗證。實驗表明,該模型可以有效解決海量軌跡數(shù)據(jù)預處理問題,為后期軌跡數(shù)據(jù)深入挖掘和分析奠定了基礎(chǔ)。
參考文獻
[1]王詔遠,李天瑞,程堯等. 基于經(jīng)驗分布的打車概率和等待時間預測[J]. 計算機工程與應用,2015(24):254~259.
[2]童曉君. 基于出租車GPS數(shù)據(jù)的居民出行行為分析[D]. 長沙:中南大學,2012.
[3]Zhang,F(xiàn)uzheng,et al. “Sensing the pulse of urban refueling behavior.”Proceedings of the 2013 ACM international joint conference on Pervasive and ubiquitous computing ACM,2013:13~22.
[4]溫雅靜. 基于熱點載客區(qū)域的出租車應急調(diào)度方案研究[D]. 北京:北京交通大學,2014.
[5]黃宜華,苗凱翔. 深入理解大數(shù)據(jù)、大數(shù)據(jù)處理與編程實踐[M]. 北京:機械工業(yè)出版社,2014:31~36.
[6]萬川梅,謝正蘭. Hadoop應用開發(fā)實戰(zhàn)詳解[M]. 北京:中國鐵道出版社,2013:11~21.
[7]Chuck Lam. Hadoop in Action[M]. 北京:人民郵電出版社,2011:2~5.
[8]張巖,郭松,趙國海. 基于Hadoop的云計算試驗平臺搭建研究[J]. 沈陽師范大學學報·自然科學版,2013(1):85~89.
[9]陳光景. Hadoop小文件處理技術(shù)的研究和實現(xiàn)[D]. 南京:南京郵電大學,2013.
[10]張丹. HDFS中文件存儲優(yōu)化的相關(guān)技術(shù)研究[D]. 南京:南京師范大學,2013.
Based on the Hadoop Massive Taxi Trajectory Data Preprocessing Technology Research
Lv Jiangbo1,2,Zhang Yongzhong1,2
(1.Lanzhou Jiaotong University,Lanzhou 730070,China;2.Lanzhou Surveying and Mapping Research Institute,Lanzhou 730030,China)
Key words:trajectory data;hadoop;big data;data preprocessing;parallel computing
Abstract:Massive taxi trajectory data preprocessing is the precondition of trajectory data mining and the application. Taxi trajectory data is a typical big data,the traditional data processing technology can not solve the problem of large scale taxi track data error analysis and preprocessing,on the basis of analyzing the trajectory data error source and error type,study of mass trajectory error statistical analysis method and data processing method,the taxi trajectory data preprocessing model based on Hadoop is put forward,using the hive for the realization of the trajectory error statistics,design MapReduce parallel processing procedures for the realization of trajectory data preprocessing. Experimental results show that,the model can effectively solve the problem of large scale taxi trajectory data preprocessing,high reliability,greatly improve the efficiency of the trajectory data preprocessing,late for trajectory data digging and analysis laid a foundation.
文章編號:1672-8262(2016)03-46-04
中圖分類號:P208.1
文獻標識碼:B
*收稿日期:2016—03—04
作者簡介:呂江波(1989—),男,碩士研究生,主要研究方向:GIS應用與開發(fā)。