利用大數據技術處理海量GPS數據


我秀中國物聯網地圖服務平台目前接入的監控車輛近百萬輛,每天采集GPS數據7億多條,產生日志文件70GB,使用傳統的數據處理方式非常耗時。

 

比如,僅僅對GPS做一些簡單的統計分析,程序就需要幾個小時才能跑完一天的數據,完全達不到實時分析的要求,更無法對數據進行一些深層次的挖掘。

 

另外歷史數據的存儲也是一個亟待解決的問題,目前大多采用的方式是將日志文件進行壓縮后上傳到服務器上進行存儲。

 

這種方式既原始又不可靠,一是需要作業員每天定時手動上傳數據,操作不方便;二是一旦存儲數據的服務器出現問題,可能會造成大量數據的丟失,造成不可挽回的損失。

 

隨着大數據技術的成熟和普及,我們發現借助於大數據技術可以完美的解決上述問題。根據目前的需求和對大數據相關軟件的掌握,我們對GPS日志分析系統做了初步的設計,架構如下圖所示:

如何利用大數據技術處理海量GPS數據
 

方法/步驟

 
  1.  

    大數據日志分析主要是對開源大數據組件進行整合開發而成,分為:數據采集層、數據預處理層、數據存儲層、數據處理層和數據分析層等5個層次。

     

    01數據采集層

     

    數據采集層主要利用開源組件Flume對日志文件進行采集。Flume是一個分布式、高可靠、高可用的海量日志采集軟件,支持定制各類的數據發送方,在收集數據的同時能夠對數據進行簡單的處理,然后寫到各種數據接收方。

     

    目前我們是對Flume采集的日志文件做兩個操作,一是直接發送給kafka進行緩存,二是將數據進行壓縮后寫入HDFS供之后的分析用。

  2.  

    02數據預處理

     

    數據預處理主要對日志文件進行初步的簡單處理。目前采用Storm從Kafka接收數據,然后對數據進行實時統計。

     

    Storm是一個分布式、容錯的實時計算系統。它的編程模型非常簡潔,主要包括三個組件:Topology、Spout和Bolt。Topology是一個由多個計算節點構成的拓撲圖,Spout和Bolt是兩種結算節點,它們一起構成了一個完整的數據流向圖。

    如何利用大數據技術處理海量GPS數據
  3.  

    數據存儲層

     

    數據存儲層主要用於數據的存儲。目前采用MongoDB存儲結果數。

     

    通過Storm處理后的數據,首先緩存到Redis中,每隔一定得時間間隔,將數據批量轉存到MongoDB中。

     

    MongoDB是一個高性能、易部署、易使用的分布式數據存儲系統,介於結構化數據庫和非結構化數據庫之間,數據存儲格式不固定,可以非常方便的進行擴充。

  4.  

    04數據處理層

     

    數據處理層主要采集一些數據挖掘算法對數據進行挖掘,或者進行實時計算。

     

    數據挖掘主要借助於統計學方法、機器學習方法、神經網絡方法等對數據進行知識挖掘,發掘潛在的價值。

     

    比如利用線性回歸算法,預測車輛的停留時間。利用k-means算法對位置臨近的出租車做聚類分析,從而發現最有可能搭載乘客的熱點區域。根據速度將軌跡數據進行分段,從而分析某個時間段的道路暢通狀況等。

  5.  

    數據分析層

     

    數據分析層主要是數據的展示和分析。

     

    比如將GPS數據加載到地圖上,利用抓路算法將GPS數據和地圖數據進行融合,對分段的軌跡進行不同顏色的顯示,可以讓調度人員對當前時間段的道路通行情況一目了然,輔助車輛的調度。

     

    我秀中國不斷提高自身數據處理能力,就是為了給您提供更快速、更精准、更豐富的數據分析功能。

    如何利用大數據技術處理海量GPS數據
  6.  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM