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