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