王京陳 偉利 陳亮

【摘要】本文選擇在Hadoop平臺MapReduce計算框架搭建服務器平臺框架,并根據數據類型的不同分別進行MySql數據庫MongoDB數據庫的設計和搭建,采用異步非阻塞通信的方式把通過GPS和RFID技術采集的數據,傳輸至信息管理系統進行數據分析處理和計算,進而在數據服務器軟件發布信息提供實時定位等信息滿足市民出行。
【關鍵詞】Hadoop平臺MapReduce計算框架 MySq1數據庫設計MongoDB數據庫設計 RFID技術
0引言
發展公共交通是改善城市交通的重要方面,公交車存在的到站不準時、坐車擁擠等問題嚴重制約了公共交通系統的發展,如何通過智能公交系統來提高乘客的滿意度是急需解決的問題。為了方便市民的出行,我們打算研究一款智能互聯的公交助手類軟件,通過車輛前端采集的數據,經過無線網絡傳輸,在Hadoop平臺處理,提供給大眾公交系統信息化和智能化的服務。
1系統設計的總體需求
(1)提供給市民:精準告知公交車線路和具體位置;預計達到時間;客流量監測;到站信息、實時更新路況信息;發布實時道路交通狀況和市政施工信息。
(2)提供給政府:通過動態監控、實時調度,掌握車輛位置信息,對公交公司可以進行有效的行業監管;和其他智能系統配合,能夠調用更多的交通信息為城市居民提供出行支持;危險時候方便進行應急指揮。
(3)提供給公交公司:通過交通路況信息、客流量時空分布,對市民交通出行進行分析,進而對車輛動態調度,實現車輛、人力、站場等生產資源最優配置,提高運營調度管理水平,并降低運營調度管理成本。
2系統設計
信息管理系統作為基礎數據的管理平臺,對人、車、線路、站臺等數據進行存儲和維護;對車輛終端GPS和RFID采集的數據進行處理,獲取車輛的實時信息,方便公交公司對車輛進行實時定位;并將定位數據其轉化成發布信息,發布在數據服務器軟件上;公交公司可以根據數據庫提供的車輛載客量來調動車輛,實現車輛的動態調度,滿足市民的出行要求。數據流圖如下所示:
3 Hadoop平臺的選擇
Hadoop是由Google公司研發的針對大規模數據處理的分布式平臺,實現在大量通用計算機組成的集群中對海量數據進行分布式計算,花費相對廉價的成本就可以構建一個穩定、簡單、強大、高效的分布式集群計算系統。MapReduce計算框架是Hadoop生態中最為重要的一個組件,該模型的核心理念就是“Map”映射“Reduce”歸約,用戶在客戶端編程時需要指定一個Map函數,用來將.一組鍵值對映射到一組新的鍵值對,另外需要指定一個并發的Reduce函數,用來將所有具有相同中間key值的中間value進行合并。MapReduce相當于一種主從架構,由一個JobTracker和若干個TaskTracker組成,其中JobTracker作為master節點負責作業的整體調度,用于接收輸入的數據并根據數據集的實際大小進行分片,然后選擇TaskTracker并向其發送分片后的數據塊,由TaskTracker執行具體的分解操作,執行完成之后將中間結果存儲到本地磁盤中并將運行結果和存儲位置.上報給J0hTracker,由JobTracker選擇下一步執行reduce任務的節點,進行最后的歸并操作。MapReduce計算框架符合我們預期的應用,最終我們選擇在Hadoop平臺MapReduce計算框架上搭建系統框架并進行開發與研究,然后選擇數據庫類型進行數據存儲,
4數據庫選型及其優勢
4.1關系型數據庫的應用
關系型數據庫是利用二維表格存儲數據,并且利用各表格之間的關系形成復雜的數據關系,這樣更便于們理解;而且關系型數據庫方便使用,可以常用的SQL語言進行操作,便于維護,具備豐富的完整性,大大減低了數據冗余和數據不一致的概率,信息管理系統中基礎信息類數據包括車輛基本信息、行駛路線信息、終端情況、司機信息等。這類數據一般數據量較小而且使用不是很頻繁,但各信息間的關系密切,主要用來給調度服務器查詢使用,對于這類信息,我們將采用關系型數據MySQL來存儲。
4.2非關系型數據庫的應用
MongoDB默認存儲引擎是內存映射方式工作的,當數據庫啟動的時候會將數據和索引映射到內存中,這樣使得操作數據時是直接的內存讀寫而非磁盤讀寫,大大加快了訪問速度,當然這也導致了數據庫占用內存較高,對機器資源要求高的問題,好在MongoDB對于分布式擴展的支持非常成熟且高效,可以通過增加廉價的商用服務器構建集群的方式使用。根據智能公交信息管理系統的需求分析可知,系統運行過程中,一般的關系型數據庫比較難滿足,MongoDB憑借快速、靈活、支持海量數據存儲等特點。實時數據包括車輛位置信息、車輛的速度信息、車內載客量等,對環境數據更新頻率很快、數據量大,每隔一一兩秒(可配置)就會向服務器發送一一次,對于這類數據,本軟件將利用非關系型數據庫MongoDB來進行存儲。
根據感知數據的結構,在mysq1數據庫建立用戶信息表,記錄用戶登陸的相關信息,并在MongoDB建立數據表中記錄公交車線路號、位置信息、實時路況信息等數據。在數據庫存儲的數據進入Hadoop平臺進行數據處理,進而實現系統的功能。
5數據采集選擇
當公交車進站時,車載前端模塊中RFID閱讀器與公交站牌RFID電子標簽建立連接,讀取站牌RFID標簽信息;當公交車處在未進站的路段上時,用GPS進行實時定位,若車輛在路段上發生故障或擁堵時間超過時間時候,采用路段RFID技術進行修正。
因為異步非阻塞通信的工作方式采用輪詢的機制,同時在執行事件的時候都采用非阻塞的方式進行,很少發生阻塞,所以我們在若干種網絡通信方式中決定采用異步非阻塞通信技術來設計實現系統的數據采集模塊,快速的傳輸到MongoDB數據庫中,并且通過在公交路網設置的RFID標簽,提取公交車存儲在RFID標簽內在線路的歷史運行數據,傳送到服務器進行計算,預測公交到站時間。
6數據庫的搭建
6.1MySq1數據庫的搭建
選用MySq1數據庫存儲歷史數據,命名數據庫名稱為Busrecords,存儲到對應的集合,存儲的信息包括車輛服務的線路號、服務的時間、車輛經過的站點。
6.2MongoDB的搭建
選用MongoDB存儲實時更新的公交信息。使用MongoDB時先創建一個數據庫,服務器軟件以BusRecords_realtime命名,接著在BusRecords_realtime數據庫中創建以Bus_coHections命名的集合,然后就可以在Bus_collections集合中插入、修改和讀取文檔(Document),把實時的路況信息和公交車具體位置、預計達到時間、客流量監測、到站信息進行存入,完成對數據的操作。
7總結
智能互聯公交軟件的研發,可以及時地掌握車輛的地理位置,并對車輛的行駛進行有效地監督,使駕駛員在駕駛的過程中更加規范,從而可減少意外的發生通過軟件可查詢出車輛的運行情況,提高了調度的合理性和科學性。可以提高車輛的利用率和乘客的滿意度。