朱東升,徐石明,李天陽,葉劍斌,王玉祥
(1.南瑞集團(tuán)公司(國網(wǎng)電力科學(xué)研究院),南京 210003;2.國電南瑞科技股份有限公司,南京 210061;3.江蘇祥華科技有限公司,東臺 224200)
基于Hadoop平臺的地鐵NCC數(shù)據(jù)中心方案研究
朱東升1,2,徐石明1,2,李天陽1,2,葉劍斌1,2,王玉祥3
(1.南瑞集團(tuán)公司(國網(wǎng)電力科學(xué)研究院),南京 210003;2.國電南瑞科技股份有限公司,南京 210061;3.江蘇祥華科技有限公司,東臺 224200)
線網(wǎng)指揮中心是地鐵管理控制中的承上啟下的重要環(huán)節(jié),接入線網(wǎng)各線路的控制中心,實(shí)時(shí)的監(jiān)測線網(wǎng)整體的運(yùn)營狀況;并通過與上級政府交通管理部門系統(tǒng)的對接,將相關(guān)數(shù)據(jù)提交至交通管理系統(tǒng),配合交通管理部門的工作;數(shù)據(jù)中心是線網(wǎng)指揮中心的核心環(huán)節(jié),存儲線網(wǎng)所有線路的生產(chǎn)數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù);目前線網(wǎng)指揮中心的數(shù)據(jù)中心都是基于傳統(tǒng)的數(shù)據(jù)倉庫的架構(gòu)來創(chuàng)建的,而隨著線路的不斷增多,數(shù)據(jù)的種類和數(shù)量都在不斷增加,傳統(tǒng)數(shù)倉暴露出成本高,擴(kuò)容難,維護(hù)困難的缺點(diǎn);該方案提出的基于Hadoop大數(shù)據(jù)平臺的數(shù)據(jù)中心建設(shè)方案,極大地降低了使用和維護(hù)成本,Hadoop生態(tài)圈包含了各類的組件模塊,能夠解決建設(shè)和使用中遇到的各類問題,提高了數(shù)據(jù)中心的性能。
大數(shù)據(jù);Hadoop;線網(wǎng)指揮中心
隨著國內(nèi)地鐵投資規(guī)模的不斷擴(kuò)大,各大城市的地鐵規(guī)模已逐步形成網(wǎng)絡(luò)化的趨勢,新的業(yè)務(wù)需求也隨之產(chǎn)生,地鐵運(yùn)營管理也日益復(fù)雜,建設(shè)線網(wǎng)層級的指揮中心已成為各大地鐵城市的迫切需求。北京是國內(nèi)最早建設(shè)線網(wǎng)指揮中心的城市,線網(wǎng)指揮中心負(fù)責(zé)協(xié)調(diào)各運(yùn)營主體,具有監(jiān)視,運(yùn)行協(xié)調(diào),應(yīng)急指揮,信息共享的功能,但由于定位和功能不夠清晰,系統(tǒng)功能也有不成熟的地方,后續(xù)北京又進(jìn)行了二期工程建設(shè),進(jìn)行了系統(tǒng)擴(kuò)容,其中基于teradata的數(shù)據(jù)倉庫建設(shè)的數(shù)據(jù)中心,是數(shù)據(jù)倉庫在國內(nèi)地鐵線網(wǎng)指揮中心的首次應(yīng)用。廣州,深圳也進(jìn)行了線網(wǎng)指揮中心工程的建設(shè),兩者都利用了數(shù)據(jù)倉庫建設(shè)了線網(wǎng)層級的數(shù)據(jù)中心,實(shí)現(xiàn)生產(chǎn)管理指標(biāo)分析和運(yùn)營評估功能。南京,成都,西安等城市的線網(wǎng)指揮中心的建設(shè)方案中也包含了數(shù)據(jù)中心的建設(shè)。可見,數(shù)據(jù)中心已經(jīng)成為各大地鐵城市建設(shè)線網(wǎng)指揮中心的重要環(huán)節(jié)。但由于數(shù)據(jù)倉庫價(jià)格昂貴,數(shù)據(jù)容量限制等因素,地鐵建設(shè)與運(yùn)營方也在尋找一種新的價(jià)格低廉,擴(kuò)容方便,性能穩(wěn)定的技術(shù)代替數(shù)據(jù)倉庫。本文介紹一種基于Hadoop大數(shù)據(jù)平臺的數(shù)據(jù)中心建設(shè)方案,實(shí)現(xiàn)了如計(jì)算、分析、展示及存儲等基礎(chǔ)服務(wù)和相應(yīng)的指標(biāo)查詢,客流分析等專業(yè)服務(wù)。
本方案中,線網(wǎng)指揮中心由數(shù)據(jù)源,數(shù)據(jù)接口平臺,ETL統(tǒng)一管理平臺,數(shù)據(jù)平臺,應(yīng)用層組成。數(shù)據(jù)源系統(tǒng)的數(shù)據(jù)經(jīng)過數(shù)據(jù)接口平臺匯總,ETL工具將數(shù)據(jù)清洗,并轉(zhuǎn)成統(tǒng)一的模型存儲到數(shù)據(jù)平臺層,數(shù)據(jù)平臺層根據(jù)應(yīng)用層的需求建立數(shù)據(jù)集市,并通過API,SQL等多種方式提供數(shù)據(jù)給應(yīng)用層。線網(wǎng)指揮中心數(shù)據(jù)流如圖1所示。
數(shù)據(jù)接口平臺采集PSCADA,BAS,F(xiàn)AS,PSD,ATS等專業(yè)的數(shù)據(jù),通過ETL平臺按照業(yè)務(wù)類型存儲到實(shí)時(shí)數(shù)據(jù)庫和數(shù)據(jù)中心。實(shí)時(shí)數(shù)據(jù)庫采用Redis等內(nèi)存數(shù)據(jù)庫,實(shí)時(shí)的存儲數(shù)據(jù)源系統(tǒng)的的當(dāng)前斷面數(shù)據(jù)。數(shù)據(jù)中心是基于Hadoop大數(shù)據(jù)平臺的架構(gòu)建造的,是地鐵線網(wǎng)指揮中心的核心部分。數(shù)據(jù)中心存儲線網(wǎng)海量的設(shè)備狀態(tài),行車狀態(tài)及客流等生產(chǎn)數(shù)據(jù)和相關(guān)辦公系統(tǒng)產(chǎn)生的業(yè)務(wù)數(shù)據(jù),提供并行的計(jì)算和非結(jié)構(gòu)化數(shù)據(jù)的處理能力,實(shí)現(xiàn)低成本的存儲和低時(shí)延、高并發(fā)的查詢能力,并通過對數(shù)據(jù)的深入挖掘和分析,建成相應(yīng)的數(shù)據(jù)集市,統(tǒng)一地對外部應(yīng)用提供數(shù)據(jù)服務(wù)。應(yīng)用層中監(jiān)察類的應(yīng)用如行車監(jiān)察,設(shè)備監(jiān)察,供電監(jiān)察,客流監(jiān)察等功能的數(shù)據(jù)來源于實(shí)時(shí)數(shù)據(jù)庫,統(tǒng)計(jì)指標(biāo)類如運(yùn)營指標(biāo),統(tǒng)計(jì)分析,運(yùn)營評估等應(yīng)用的數(shù)據(jù)來源于數(shù)據(jù)中心。
圖2 實(shí)時(shí)數(shù)據(jù)流
數(shù)據(jù)中心是建設(shè)地鐵NCC系統(tǒng)的核心,是相關(guān)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)來源,必須具有很強(qiáng)的數(shù)據(jù)采集,存儲,開發(fā),管理和分析能力。數(shù)據(jù)中心主要由實(shí)時(shí)數(shù)據(jù)處理模塊和歷史數(shù)據(jù)處理模塊兩部分組成:實(shí)時(shí)類數(shù)據(jù)處理模塊采集,計(jì)算,存儲設(shè)備的當(dāng)前狀態(tài)數(shù)據(jù),并根據(jù)應(yīng)用層的要求提高各類接口服務(wù)供外部應(yīng)用調(diào)用。歷史數(shù)據(jù)處理模塊存儲,分析設(shè)備的歷史狀態(tài)信息,按照對應(yīng)的指標(biāo)體系為指標(biāo)分析提供服務(wù),針對歷史數(shù)據(jù)處理模塊存儲的未經(jīng)處理的設(shè)備狀態(tài)數(shù)據(jù),通過數(shù)據(jù)挖掘分析工具,預(yù)測設(shè)備的健康狀態(tài),為維保人員的設(shè)備預(yù)防性維修提供依據(jù),提高設(shè)備使用率和運(yùn)營安全性。
實(shí)時(shí)數(shù)據(jù)包括設(shè)備的實(shí)時(shí)狀態(tài)數(shù)據(jù),各類報(bào)警數(shù)據(jù)等,主要為實(shí)時(shí)監(jiān)察類系統(tǒng)提供數(shù)據(jù)服務(wù)。按照功能模塊劃分,實(shí)時(shí)數(shù)據(jù)經(jīng)過“數(shù)據(jù)采集→數(shù)據(jù)接入→數(shù)據(jù)分析計(jì)算→數(shù)據(jù)輸出/存儲”幾個(gè)環(huán)節(jié),提供給應(yīng)用層使用。具體功能模塊采用如圖2組件實(shí)現(xiàn)。
實(shí)時(shí)數(shù)據(jù)通過http的方式發(fā)送給flume集群,flume集群中配置http source獲取實(shí)時(shí)數(shù)據(jù),并通過兩級高可用的flume集群將數(shù)據(jù)轉(zhuǎn)發(fā)給kafka集群中,解決了采集與計(jì)算速度不一致的問題。Storm獲取kafka傳遞過來的數(shù)據(jù)并分發(fā)給storm計(jì)算節(jié)點(diǎn)計(jì)算,最終結(jié)果存放在redis中供外部應(yīng)用程序使用。
2.1.1 實(shí)時(shí)數(shù)據(jù)采集
NCC數(shù)據(jù)中心實(shí)時(shí)數(shù)據(jù)采集模塊,通過配置需獲取的實(shí)時(shí)數(shù)據(jù)的專業(yè),類型等信息,被動(dòng)的接受數(shù)據(jù)源系統(tǒng)的數(shù)據(jù),數(shù)據(jù)源系統(tǒng)一旦設(shè)備狀態(tài)數(shù)據(jù)發(fā)生變化,立即發(fā)送給NCC數(shù)據(jù)中心實(shí)時(shí)數(shù)據(jù)處理模塊,保證了實(shí)時(shí)數(shù)據(jù)的及時(shí)性。數(shù)據(jù)采集模塊負(fù)責(zé)從數(shù)據(jù)源系統(tǒng)采集數(shù)據(jù),使用Flume實(shí)現(xiàn)。Flume是一種分布式,可靠且高可用的海量日志采集,聚合和傳輸系統(tǒng)。Flume靈活簡易的架構(gòu)是基于處理流數(shù)據(jù)而創(chuàng)建的,具有容錯(cuò)可調(diào)的可靠性和故障轉(zhuǎn)移和恢復(fù)的魯棒性。Flume使用一個(gè)簡單的可擴(kuò)展數(shù)據(jù)模型,允許應(yīng)用程序在線分析。
2.1.2 實(shí)時(shí)數(shù)據(jù)接入
數(shù)據(jù)采集模塊使用kafka消息中間件來顯示,kafka接受flume發(fā)送的數(shù)據(jù)并輸出給storm,解決了flume數(shù)據(jù)采集與storm數(shù)據(jù)處理速度不一致的問題。Kafka是一種分布式的,基于發(fā)布/訂閱的消息系統(tǒng),提供消息持久化能力,即使對TB級別以上的數(shù)據(jù)也能保證訪問性能。Kafka在主題中保存消息的信息,生產(chǎn)者向主題中保存數(shù)據(jù),消費(fèi)者從主體中讀取數(shù)據(jù)。
2.1.3 實(shí)時(shí)數(shù)據(jù)分析計(jì)算
數(shù)據(jù)分析計(jì)算模塊使用storm組件實(shí)現(xiàn),storm是一個(gè)分布式,容錯(cuò)性好的實(shí)時(shí)計(jì)算系統(tǒng)。支持Java,ruby,python等多語言編程并支持?jǐn)U展。Storm具有極高的容錯(cuò)性和水平擴(kuò)展性,可靠的消息處理機(jī)制保證了每個(gè)消息都能得到一次完整的處理,使用的?MQ作為其底層消息隊(duì)列保證了消息能夠得到快速處理。
2.1.4 實(shí)時(shí)數(shù)據(jù)存儲
實(shí)時(shí)數(shù)據(jù)主要提供給外部監(jiān)察類應(yīng)用使用,NCC系統(tǒng)中實(shí)時(shí)數(shù)據(jù)存儲采用json格式,數(shù)據(jù)示例為“TagName:Value”。其中TagName包含設(shè)備的專業(yè),站點(diǎn),點(diǎn)號等信息。Value中存儲了設(shè)備的值和狀態(tài)信息。根據(jù)數(shù)據(jù)的格式和特點(diǎn),實(shí)時(shí)數(shù)據(jù)采用redis這類key-value存儲系統(tǒng)來實(shí)現(xiàn)。Redis是一種高性能的key-value內(nèi)存數(shù)據(jù)庫,提供了java,c++,python等客戶端和編程接口,方便系統(tǒng)開發(fā),擴(kuò)大系統(tǒng)的兼容性。
歷史數(shù)據(jù)包含線網(wǎng)所有設(shè)備的歷史狀態(tài)數(shù)據(jù),客流數(shù)據(jù)等,是數(shù)據(jù)中心的核心。歷史數(shù)據(jù)經(jīng)過預(yù)處理,建索引,按照主題存儲,并通過指標(biāo)體系的建立,業(yè)務(wù)主題分析和統(tǒng)一的業(yè)務(wù)視圖,最終為外部應(yīng)用提供數(shù)據(jù)服務(wù)。地鐵運(yùn)營需根據(jù)數(shù)據(jù)中心產(chǎn)生的統(tǒng)計(jì)分析報(bào)表獲取線網(wǎng)地鐵運(yùn)營狀況,客流分布,并為地鐵運(yùn)行時(shí)刻表的編制提供理論依據(jù)。后續(xù)利用BI工具及復(fù)雜的算法,通過對數(shù)據(jù)的深入挖掘,改善地鐵運(yùn)營的現(xiàn)狀,實(shí)現(xiàn)運(yùn)營,維保的系統(tǒng)管理。歷史數(shù)據(jù)處理流程及所用組件如圖3所示。
圖3 歷史數(shù)據(jù)流
2.2.1 歷史數(shù)據(jù)采集
本方案實(shí)現(xiàn)了三種數(shù)據(jù)采集方式,包括導(dǎo)出文本文件的方式,運(yùn)行T+1的定時(shí)任務(wù)將數(shù)據(jù)源系統(tǒng)數(shù)據(jù)以文本文件的形式導(dǎo)出到高可用網(wǎng)絡(luò)附屬存儲設(shè)備中,flume采取批量的方式將數(shù)據(jù)寫入到hdfs中;API直接寫入的方式,通過調(diào)用kafka api把數(shù)據(jù)寫入到kafka,繼而經(jīng)過flume數(shù)據(jù)存儲到hdfs中;sqoop定時(shí)訪問數(shù)據(jù)源系統(tǒng)數(shù)據(jù)庫批量及增量導(dǎo)出數(shù)據(jù)到Hadoop平臺中。三種采集方式的配合使用,最大程度的兼容了不同的數(shù)據(jù)源系統(tǒng),發(fā)揮了數(shù)據(jù)中心保存線網(wǎng)相應(yīng)系統(tǒng)數(shù)據(jù)的功能,為了后續(xù)的數(shù)據(jù)挖局和分析提供了基礎(chǔ)。
2.2.2 歷史數(shù)據(jù)存儲
按照數(shù)據(jù)功能劃分,Hadoop平臺數(shù)據(jù)存儲分為數(shù)據(jù)著落區(qū),數(shù)據(jù)預(yù)處理區(qū),索引區(qū),數(shù)據(jù)存儲區(qū),數(shù)據(jù)歸檔區(qū),外部數(shù)據(jù)訪問區(qū)六個(gè)功能區(qū)。數(shù)據(jù)著落區(qū)存儲原始數(shù)據(jù),保存時(shí)間在一周左右;數(shù)據(jù)預(yù)處理區(qū)保存時(shí)間若干天,主要為統(tǒng)計(jì)和預(yù)處理的數(shù)據(jù),建立Hive/Impala視圖表;索引區(qū)建立數(shù)據(jù)索引,保留若干個(gè)月,提供solar搜索服務(wù);數(shù)據(jù)存儲區(qū)存儲結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)按照業(yè)務(wù)類型進(jìn)行Parquet+snappy壓縮,保留若干年;數(shù)據(jù)歸檔區(qū)按照業(yè)務(wù)類型存儲永久的原始?xì)w檔數(shù)據(jù);外部數(shù)據(jù)訪問區(qū)存儲相應(yīng)的數(shù)據(jù)庫表,數(shù)據(jù)類型為統(tǒng)計(jì)和已處理的結(jié)構(gòu)化數(shù)據(jù),為對應(yīng)的業(yè)務(wù)系統(tǒng)提供數(shù)據(jù)服務(wù),同時(shí)提供統(tǒng)計(jì)報(bào)表查詢功能。
2.2.3 歷史數(shù)據(jù)計(jì)算
Hadoop平臺中提供了5種主要的計(jì)算框架:基于mapreduce/spark的批處理框架,基于impala的交互式sql查詢,基于spark streaming的流計(jì)算,基于全文檢索的Solr搜索引擎框架,基于Hbase/Cassandra的高并發(fā)實(shí)時(shí)查詢。根據(jù)地鐵線網(wǎng)控制中心的業(yè)務(wù)需求,本文采用spark用作批處理,定時(shí)的計(jì)算并生成相應(yīng)的指標(biāo)數(shù)據(jù),spark適用于批量數(shù)據(jù)的計(jì)算,將中間結(jié)果存放于內(nèi)存當(dāng)中,具有高效的迭代計(jì)算能力,從而進(jìn)行批處理時(shí)更高效;同時(shí)應(yīng)用層需實(shí)時(shí)查詢相關(guān)指標(biāo),了解全線所有設(shè)備和客流的指標(biāo)數(shù)據(jù)。本方案采用impala實(shí)現(xiàn)交互式查詢功能,impala是基于內(nèi)存的大規(guī)模并行處理架構(gòu),不依賴于底層的map/reduce作業(yè),交互式查詢時(shí)具有很短的響應(yīng)時(shí)間,支持主流的Hadoop文件格式保證了應(yīng)用的廣泛性。
實(shí)時(shí)監(jiān)察類應(yīng)用包括行車、供電、設(shè)備、客流及應(yīng)急處置等。其中行車、供電及設(shè)備監(jiān)察應(yīng)用采用基于B/S架構(gòu)的綜合監(jiān)控系統(tǒng)來實(shí)現(xiàn),前端JSP頁面嵌入SVG矢量圖動(dòng)態(tài)的展示設(shè)備當(dāng)前狀態(tài),業(yè)務(wù)數(shù)據(jù)來源于數(shù)據(jù)中心的redis數(shù)據(jù)庫,模型數(shù)據(jù)存儲于監(jiān)控系統(tǒng)本身的關(guān)系型數(shù)據(jù)庫里;客流監(jiān)察系統(tǒng)主要監(jiān)測線網(wǎng)各個(gè)站的客流量,前端展示采用Echart等開源圖標(biāo)控件實(shí)現(xiàn);應(yīng)急處置系統(tǒng)提供了各類緊急情況的應(yīng)急處置預(yù)案,當(dāng)緊急情況發(fā)生時(shí),由系統(tǒng)用戶根據(jù)現(xiàn)象確定啟動(dòng)何種預(yù)案,執(zhí)行記錄會通過文字,電腦錄頻,語音,視頻等形式保存,供后續(xù)分析研究。以南京地鐵為例,本方案實(shí)現(xiàn)的線網(wǎng)指揮中心全線列車運(yùn)行如圖4所示。
圖4 全線列車位置實(shí)時(shí)圖
每條線路代表了一個(gè)SVG圖層,用戶可以通過篩選線路的方式查看全線或者某幾條線路的列車運(yùn)行狀態(tài),其中重要安全事故如異?;馂?zāi),站點(diǎn)大客流等也會顯示在圖中。業(yè)主管理方根據(jù)全線列車運(yùn)行狀態(tài)和設(shè)備狀況,為緊急情況列車運(yùn)行圖的調(diào)整及人流疏散提供依據(jù),提高地鐵運(yùn)行的安全性,保障了乘客的安全。
根據(jù)國內(nèi)不同城市地鐵運(yùn)營的需求以及對軌道行業(yè)的分析,總結(jié)出客流信息類、清算信息類、票務(wù)信息類、列車運(yùn)行信息類、路網(wǎng)車輛設(shè)備故障類、服務(wù)類、試運(yùn)行類、線網(wǎng)指揮中心系統(tǒng)采集類及線網(wǎng)指揮中心設(shè)備運(yùn)行類9大類指標(biāo)清單。以乘客關(guān)注的服務(wù)類指標(biāo)中的自動(dòng)扶梯可靠度和進(jìn)出站閘機(jī)可靠度兩項(xiàng)指標(biāo)為例,需統(tǒng)計(jì)一定時(shí)間內(nèi)自動(dòng)扶梯或進(jìn)出站閘機(jī)實(shí)際運(yùn)行時(shí)間,并得出與計(jì)劃運(yùn)行時(shí)間的比值,根據(jù)一定的比例確定設(shè)備的健康狀態(tài),為后續(xù)的設(shè)備評估和運(yùn)維檢修提供依據(jù)。
統(tǒng)計(jì)分析是商業(yè)智能的一部分,由于商業(yè)智能工具的專業(yè)行,本方案采用了FineBI商業(yè)智能軟件,F(xiàn)ineBI是一種輕量級的BI工具,部署方便,升級成本低且易于維護(hù)。FineBI基于hadoop平臺中的表間的關(guān)聯(lián)關(guān)系和完整的數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)處理和分析,采取cube預(yù)處理以及并行計(jì)算的先進(jìn)的數(shù)據(jù)處理模式,采用高效的智能位圖索引和緩存機(jī)制,保證了前端數(shù)據(jù)展示的響應(yīng)及時(shí)。
用戶通過網(wǎng)頁配置頁面,填入所需的驅(qū)動(dòng)器、URL、數(shù)據(jù)庫用戶名和密碼及編碼等信息。FineBi同時(shí)支持各類主流的包括mysql,oracle,sqlserver等關(guān)系型數(shù)據(jù)庫,以及MongoDB等Nosql型數(shù)據(jù)庫。
Hadoop平臺創(chuàng)建時(shí)已經(jīng)考慮到脫離對硬件的依賴,故可搭建在從傳統(tǒng)的PC機(jī)到大型的服務(wù)器等各類機(jī)器上。為了更加貼近NCC系統(tǒng)生產(chǎn)環(huán)境,本方案采用如今地鐵各類生產(chǎn)系統(tǒng)廣泛應(yīng)用的主流X86服務(wù)器,實(shí)驗(yàn)環(huán)境Hadoop平臺的部署采用水平部署方式,采用X86服務(wù)器搭建四個(gè)節(jié)點(diǎn),其中Hadoop集群采用三個(gè)節(jié)點(diǎn),另外一個(gè)節(jié)點(diǎn)配置redis以及關(guān)系型數(shù)據(jù)庫。每個(gè)節(jié)點(diǎn)通過一塊千兆網(wǎng)卡與千兆交換機(jī)相聯(lián)接。網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 實(shí)驗(yàn)環(huán)境
Hadoop平臺包含了如TestDFSIO,mrbench,nnbench等測試工具,TestDFSIO側(cè)重于測試Hadoop的IO性能,mrbench側(cè)重于測試任務(wù)執(zhí)行效率,nnbench側(cè)重于測試主節(jié)點(diǎn)的負(fù)載性能。這三種工具能夠從不同方面測試Hadoop的性能,但無法與傳統(tǒng)的數(shù)據(jù)庫以及MPP數(shù)據(jù)倉庫的測試結(jié)果形成橫向?qū)Ρ?。結(jié)合NCC業(yè)務(wù)類型和數(shù)據(jù)結(jié)構(gòu),本方案采用TPC-H基準(zhǔn)測試方案,模擬各類復(fù)雜的查詢和修改操作,從而測試結(jié)果更能反應(yīng)NCC實(shí)際應(yīng)用中的數(shù)據(jù)訪問性能。數(shù)據(jù)根據(jù)TPC-H標(biāo)準(zhǔn)工具dbgen生成,數(shù)據(jù)表文件大小如表所示。
表1 數(shù)據(jù)表文件大小
數(shù)據(jù)采用Hadoop提供的gpload工具,通過執(zhí)行g(shù)pload -f f導(dǎo)入到Hadoop中,數(shù)據(jù)導(dǎo)入耗時(shí)如表2所示。
本實(shí)驗(yàn)通過分別對100 G和1T的地鐵設(shè)備狀態(tài)數(shù)據(jù)執(zhí)行不同的sql語句,模擬各類的復(fù)雜查詢和并行修改操作等,得出每個(gè)sql語句的執(zhí)行時(shí)間,并縱向?qū)Ρ?00 G和1T數(shù)據(jù)下同一sql語句的執(zhí)行效率,得出隨著數(shù)據(jù)量的增大,Hadoop在處理效率上并沒有得到明顯降低的結(jié)論,反應(yīng)了Hadoop處理大數(shù)據(jù)的能力。測試結(jié)果如圖7所示。
表2 Hadoop導(dǎo)入測試數(shù)據(jù)耗時(shí)
圖7 測試結(jié)果
根據(jù)測試結(jié)果可以得出,在100 G的原始數(shù)據(jù)情況下,22條sql語句的執(zhí)行時(shí)間都控制在3 s之內(nèi),這對于NCC業(yè)務(wù)系統(tǒng)是可以接受的。1T的原始數(shù)據(jù)情況下的測試結(jié)果也反映,除了4條sql語句,其它測試語句和100 G原始數(shù)據(jù)的運(yùn)行時(shí)間幾乎一致。通過分析sql語句Q2,Q7,Q9,Q21,以Q2語句為例:
Select s_acctbal, s_name, n_name, p_partkey, p_mfgr, s_address, s_phone, s_comment
From part, supplier, partsupp, nation, region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and p_size = 35
and p_type like '%NICKEL'
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'MIDDLE EAST'
and ps_supplycost = (
select min(ps_supplycost)
from partsupp, supplier, nation, region
wherep_partkey = ps_partkey
and s_suppkey = ps_suppkey
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'MIDDLE EAST'
)
order by s_acctbal desc, n_name, s_name, p_partkey limit 100;
Q2語句包含復(fù)雜的如聚焦操作、子查詢、排序及多表聯(lián)合查詢等復(fù)雜的查詢邏輯,不可避免地隨著數(shù)據(jù)量的增大會對性能造成影響。但這類復(fù)雜查詢邏輯一般應(yīng)用在統(tǒng)計(jì)分析業(yè)務(wù)系統(tǒng)中,根據(jù)統(tǒng)分系統(tǒng)的非實(shí)時(shí)性特點(diǎn),得出測試結(jié)果同樣控制在NCC可接受的范圍中的結(jié)論??梢娫诖蟛糠謶?yīng)用場景的情況下,Hadoop平臺都能完美地解決問題,并在數(shù)據(jù)急劇擴(kuò)張的情況下都能保持良好的性能。
不同于傳統(tǒng)的基于MPP數(shù)據(jù)倉庫建立的數(shù)據(jù)中心,本方案提出的基于Hadoop的數(shù)據(jù)中心建設(shè)方案,具有很強(qiáng)的技術(shù)先進(jìn)性,支持結(jié)構(gòu)化,半結(jié)構(gòu)化,非結(jié)構(gòu)化各類數(shù)據(jù)的存儲和查詢,支持批量,實(shí)時(shí)各類數(shù)據(jù)采集方式,在軟件層面提高了數(shù)據(jù)的存儲計(jì)算可靠性,同等計(jì)算能力的情況下,成本比傳統(tǒng)的MPP數(shù)據(jù)倉庫低廉,解決了使用數(shù)據(jù)倉庫建設(shè)數(shù)據(jù)中心擴(kuò)容難,成本高,維護(hù)困難的缺點(diǎn)。越來越多的科技企業(yè)如華為、浪潮、Cloudear及谷歌等都加入到了Hadoop相關(guān)產(chǎn)品的研究和開發(fā)中,使得Hadoop生態(tài)圈的不斷發(fā)展,Hadoop產(chǎn)品也趨于穩(wěn)定。國內(nèi)北京地鐵就正實(shí)施將以前基于數(shù)倉建設(shè)的數(shù)據(jù)中心遷移到Hadoop平臺中,也證明了Hadoop的優(yōu)勢。基于Hadoop數(shù)據(jù)中心的數(shù)據(jù)挖掘,分析將給地鐵運(yùn)營帶來巨大的價(jià)值,提高地鐵運(yùn)行的穩(wěn)定性和運(yùn)行效率,更好地服務(wù)乘客。
[1] 陳達(dá)倫,陳榮國,謝 炯. 基于MPP架構(gòu)的并行空間數(shù)據(jù)庫原型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 地球信息科學(xué),2016(2):151-159.
[2] 王德文. 基于云計(jì)算的電力數(shù)據(jù)中心基礎(chǔ)架構(gòu)及其關(guān)鍵技術(shù)[J]. 電力系統(tǒng)自動(dòng)化,2016(11):67-71,107.
[3] 丁澤柳,郭得科,申建偉,等. 面向云計(jì)算的數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)溲芯縖J]. 國防科技大學(xué)學(xué)報(bào),2011(6):1-6.
Research of Hadoop Platform for Metro Data Center Construction
Zhu Dongsheng1,2,Xu Shiming1,2,Li Tianyang1,2,Ye Jianbin1,2,Wang Yuxiang3
(1.NARI Group Corporation (State Grid Electric Power Research Institute) ,Nanjing 210003,China;2.NARI Technology Co.,Ltd.,Nanjing 210061,China;3.Jiangsu Xiang Hua Technology Co., Ltd., Dongtai 224200,China)
The network control center, which access to the line operation control center, plays an important role in the metro management and control by the way of real time monitoring the overall operation status of the metro network. And also submit the relevant data to the traffic management system so as to coordinate with the work of the government traffic management department. The data center, which stores the overall network production data and business data, is the core of the network control center. At present, the data center of the network control center constructed based on the traditional data warehouse architecture. With the number of the line and data increasing, the traditional warehouse exposed high cost, difficult expansion and maintenance and other shortcomings. This paper proposes the data center construction scheme based on the Hadoop big data platform, which greatly reduces the use and maintenance costs. The Hadoop ecosystem contains various modules, can solve all kinds of problems encountered in the construction and use of the data center, as the result, improves the performance of data center.
bigdata; Hadoop; netwotk control center
2017-05-17;
2017-06-07。
朱東升(1987-),男,碩士,工程師,主要從事電力系統(tǒng)及其自動(dòng)化,軌道交通電氣化及自動(dòng)化,WEB前后臺框架方向的研究。
1671-4598(2017)12-0224-04
10.16526/j.cnki.11-4762/tp.2017.12.058
TP311.13
A