黃詩瑤



摘 要:隨著軌道交通行業的日益發展,其業務數據的量級成指數增長,對傳統的數據存儲方案產生了巨大的沖擊,在快速有效的對海量數據進行存儲和查詢以及對存儲能力進行無縫擴容方面略顯不足。文章從數據的存儲、可靠性、擴容等方面介紹了hadoop技術;探討了在軌道交通行業數據中心的建設方案中如何利用hadoop技術,提出了基于該方案企業可以在哪些方面進行數據挖掘的建議。
關鍵詞:軌道交通;hadoop;數據中心;數據挖掘
1 引言
隨著近幾年互聯網的火熱,相關技術也有著質的進步,特別是在大數據這一方面。然而傳統行業也意識到數據的重要性,紛紛建立起自己的大數據中心平臺,迎接大數據時代的到來。
2 hadoop生態系統的研究
隨著Apache Hadoop項目在2006年正式啟動[1],到目前為止國內外已有很多知名企業在生產環境使用hadoop。其生態系統如圖1所示,下面主要介紹下hadoop的文件存儲、實時數據庫以及數據倉庫[2]。
2.1 文件存儲
HDFS是hadoop的分布式文件系統,其特點是支持PG級別的數據存儲、高可靠性、自動容錯性、高擴展性。其整體架構由Block(數據塊)、NameNode(管理節點)、DataNode(數據節點)組成:
(1) Block(數據塊):Block是HDFS存儲的最少單元,與普通的文件系統相比,block默認的大小是64MB。而對于一個大文件將會分割成多個數據塊進行存儲,并且每個數據塊會有多個副本存在多個DataNode上,默認是3份備份數據,這樣保證了數據的可靠性。
(2) NameNode(管理節點):Namenode主要負責管理HDFS中的文件目錄、文件和Block的映射關系以及Block和DataNode的對應關系。HDFS提供了兩種容錯機制來保證系統正常運行。第一種是將這些對應關系持久化存在本地磁盤中。第二種是通過SecondaryNamenode(輔助Namenode)來定時對Namespace鏡像與操作日志文件進行合并,并將其進行保存。
(3) DataNode(數據節點):DataNode是文件系統中的工作節點,負責存儲、數據的讀寫等。Datanode會定時向NameNode發送心跳信息,從而保證各個節點的可用性,同時如果某個節點掛掉,會將數據遷移到其它DataNode上,保證每份數據有3個副本。該節點可以任意的添加和刪除,實現無縫擴容。
2.2 實時數據
HBase是一個支持海量數據實時查詢的noSQL數據庫,其特點面向列存儲、可伸縮、可靠性高、實時讀寫、高性能和周期性,其整體架構如圖2所示。
(1) HMaster:負責對表的創建、修改、刪除操作,負責HRegionServer的負載均衡,調整Region分布,以及當HRegionServer停機后,負責失效HRegionServer上Region的遷移。
(2) HRegionServer:主要負責響應用戶I/O請求,向HDFS文件系統中讀寫數據。由于HBase的數據是按照RowKey的字典順序進行排序的,HRegionServer還負責Region的自動分裂和合并。如果當前數據量出現飽和時,用戶可以通過添加機器節點,實現自動擴容。
(3) HRegion:主要負責一個分區內數據的存儲和讀取,其中HRegion會包含多個StoreFile,StoreFile是存在磁盤中的文件對象。其實HBASE的讀寫性能與HRegion的設計有很大的關聯,其底層采用了LSM樹作為存儲引擎,通過寫緩存將隨機寫轉換順序寫,從而大大提供寫的速度。
(4) WriteDate: HRegionServer首先會將數據順序寫入到HLog中,以確保在HRegionServer在停機后能保證數據的一致性。然后再找到對應的HRegion,將數據寫到寫緩存,這時寫緩存并不會馬上將數據寫入到磁盤上,而是等到寫緩存的數據達到一定的閥值或者flush指令才會把數據寫到磁盤中。
(5) ReadDate:數據的讀取先會通ROOT和META兩張內置表找到該數據在那個Region上,這兩張內置表記錄了HBase中所有Region的索引且存在內存中。找到對應的Region后,會先去寫緩存查找,如果有數據則直接返回,如果沒有數據則去讀緩存進行查詢,其中讀緩存采用LRU進行數據淘汰,如果讀緩存有則直接返回,如果讀緩存沒有數據則去磁盤上進行查詢。
2.3 數據倉庫
Hive為離線數據倉庫,提供對海量數據進行離線分析接口,支持傳統的SQL語言進行大規模離線數據統計分析。
其工作原理如圖3所示,其底層還是利用Hadoop的Mapreduce計算框架能力來執行一個任務。其中Metastore存儲了數據倉庫中表的元數據信息,其它部分與傳統的關系數據的執行引擎的流程大體一致。包括對SQL的詞法解析、語法解析、執行計劃、MapReduce任務轉換等,其核心思想是將一個大任務劃分成很多個小任務,然后再將小任務的輸出進行合并,得到最終的結果。
2.4 其它
Mahout是基于Hadoop計算框架的數據挖掘庫[3],用戶可以快速搭建自己的挖掘任務,并且該項目還在持續加入更多更穩定的挖掘算法。Spark是最近火起來的,基于內存來處理數據,從而大大提高了任務執行的速度,如果對任務的實時要求比較高的話可以采用Spark來執行。
3 在軌道交通行業的應用
3.1 數據中心
傳統Unix服務器為基礎的數據中心具有成本高、計算能力不足、數據讀取速度相對較慢等缺陷[4],目前很多行業的數據中心是以Hadoop分布式框架為基礎構建,實施成本低、數據存儲安全可靠、系統易擴展、數據讀寫速度快、計算能力強等特點[5]。利用Hadoop集群強大的計算能力,構建大數據的機器學習平臺,為客運管理人員提供決策支持,可以為后續新線路的開通提供數據支撐,讓地鐵運營更加信息化、一體化、智能化,促進軌道交通行業信息化發展。
整體架構圖如圖4所示,基于Hbase提供實時查詢的接口,如業務報表查詢;基于Hive提供離線統計分析接口;基于Spark提供實時統計接口,如客流量實時展示;以及基于Mahout提供離線數據挖掘分析接口,如客流預測等。
3.2 客流分析
客觀深入的客流分析是進行線網規劃、可行性分析以及制定運營計劃的重要參考。在地鐵客流組織與優化研究領域,客流短期預測和行人運動模擬是其關鍵技術。在進行相關模型的構建時可以基于Hadoop計算框架的數據挖掘庫進行二次開發實現[5],如趙鈺棠[6]等人提出的基于支持向量機的地鐵客流量預測,還可以在城市軌道交通短期客流預測、客流預警研究、斷面客流研究、客流擁堵研究等中使用hadoop技術。
4 結束語
本文介紹了基于hadoop生態圈在軌道交通行業數據中心的建設方案,從數據的存儲、可靠性、擴容、使用等方面介紹hadoop,以及基于該套數據中心解決方案還可以做些挖掘嘗試來提供企業決策建議。
利用 Hadoop 計算框架構建大數據計算數據中心的基礎設施,這是一個當前頗為流行也更為寬廣的研究領域,研究人員可以從中間件產品研發、大數據計算安全、計費機制和資源調度、負載均衡等方面結合 Hadoop進行研究,將會在軌道交通行業有更多的應用。
參考文獻
[1].Thusoo A, Sarma J S, Jain N, et al. Hive: a warehousing solution over a map-reduce framework[J]. Proceedings of the VLDB Endowment, 2009,2(2):
[2]程瑩,張云勇,徐雷,等.基于Hadoop及關系型數據庫的海量數據分析研究[J].電信科學,2010 (011):47-50.
[3].張明輝.基于Hadoop的數據挖掘算法的分析與研究[D].昆明理工大學,2012.
[4].程豪. 基于Hadoop的交通大數據計算應用研究[D].長安大學,2014
[5].張洪磊. 基于Hadoop的醫院數據中心系統設計與實現[D].浙江大學,2014
[6].趙鈺棠,楊信豐,楊珂. 基于支持向量機的地鐵客流量預測 [J]. 都市快軌交通,第27卷第3期2014年6月