馬超 黃良毅 張鐵剛 李偉寧
[摘 要]隨著信息時代的來臨,企業(yè)的日常運營越來越依賴于IT系統(tǒng)的日常運行。企業(yè)對信息系統(tǒng)的依賴越深,系統(tǒng)的復雜度越高,IT運維的難度也隨之加大,但由于受制于建設時期的技術制約,電力行業(yè)在大數(shù)據(jù)的分析處理方面已逐漸無法適應新環(huán)境、新運維模式下的管理要求?;诖耍疚闹攸c分析海南電網(wǎng)海量機器數(shù)據(jù)實時流處理技術。
[關鍵詞]海南電網(wǎng);海量機器數(shù)據(jù);實時流處理技術
doi:10.3969/j.issn.1673 - 0194.2019.02.033
[中圖分類號]TM76;TP311.13 [文獻標識碼]A [文章編號]1673-0194(2019)02-00-03
0 引 言
大數(shù)據(jù)是近年來受到廣泛關注的新概念,是指通過對大量來源復雜的多種數(shù)據(jù)進行高速地捕捉、發(fā)現(xiàn)和分析,用經(jīng)濟的方法提取其價值的技術體系或技術架構(gòu)。機器大數(shù)據(jù)是在大數(shù)據(jù)處理分類中,由機器直接生成的數(shù)據(jù),也是發(fā)展最快、最為復雜,同時又極具商業(yè)價值的大數(shù)據(jù)組成形式,并且機器大數(shù)據(jù)具有數(shù)量大、增長速度快、復雜性高、多樣化等特點。除了來自服務器、存儲、網(wǎng)絡中的傳統(tǒng)IT數(shù)據(jù)以外,來自移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)中的大量非結(jié)構(gòu)化數(shù)據(jù)也都屬于機器數(shù)據(jù),能夠機器數(shù)據(jù)進行深入挖掘,充分利用數(shù)據(jù)價值,提升數(shù)據(jù)分析質(zhì)量,保證IT系統(tǒng)穩(wěn)定運行。
借助大數(shù)據(jù)流式處理技術,技術人員能夠?qū)θW(wǎng)范圍內(nèi)的主機、服務器、網(wǎng)絡設備、數(shù)據(jù)庫以及各種應用服務系統(tǒng)等產(chǎn)生的各類大數(shù)據(jù)進行規(guī)范采集,規(guī)范數(shù)據(jù)格式,統(tǒng)一持久化存儲,統(tǒng)一策略制定,并進行分析,實時和準實時的可視化呈現(xiàn)。
1 國內(nèi)外海量數(shù)據(jù)的流處理技術
目前,國內(nèi)外主流的海量機器數(shù)據(jù)流式處理技術包括數(shù)據(jù)攝取技術和序列化技術。
1.1 數(shù)據(jù)攝取技術
(1)Flume。Flume從其他應用程序收集機器數(shù)據(jù),然后將這些數(shù)據(jù)送入Hadoop,功能比較強大,具有容錯性,還可以調(diào)優(yōu)化及故障切換。
(2)Kafka。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),負責處理消費者規(guī)模網(wǎng)站中的所有動作流數(shù)據(jù)。
(3)Sqoop。企業(yè)在關系數(shù)據(jù)庫與Hadoop之間傳輸數(shù)據(jù),Sqoop可以將數(shù)據(jù)導入Hive或HBase,并從Hadoop導出到關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。
1.2 序列化技術
(1)Protocol Buffers。Protocol Buffers可以把結(jié)構(gòu)化數(shù)據(jù)串行化,很適合做數(shù)據(jù)存儲或RPC數(shù)據(jù)交換格式。它可用于通訊協(xié)議、數(shù)據(jù)存儲的序列化結(jié)構(gòu)數(shù)據(jù)格式。
(2)Avpro。這個Apache項目提供了數(shù)據(jù)序列化系統(tǒng),擁有豐富的數(shù)據(jù)結(jié)構(gòu)和緊湊格式。
1.3 ETL(萃取、轉(zhuǎn)換)技術
(1)Apache Falcon。Apache Falcon是一個面向Hadoop的數(shù)據(jù)處理和管理平臺,設計用于數(shù)據(jù)移動、數(shù)據(jù)管道協(xié)調(diào)、生命周期管理和數(shù)據(jù)發(fā)現(xiàn)。它使終端用戶可以快速地將數(shù)據(jù)及其相關業(yè)務上傳到Hadoop集群中。
(2)Crunsh。Crunch是一個用Go語言開發(fā)的基于Hadoop的ETL和特性的抽取工具,特點是速度快。
2 海量機器數(shù)據(jù)處理在海南電力的技術研究及運用
2.1 項目背景
海南電網(wǎng)海量日志平臺科技項目中的網(wǎng)絡環(huán)境比較復雜,在日常的運維過程中,IT管理員經(jīng)常需要提取日志信息以追蹤系統(tǒng)故障及其他問題,但目前面臨的問題包括以下幾個方面。①海量的日志沒有進行集中管理,管理員需要登錄每一臺服務器,使用腳本命令或程序查看日志,操作煩瑣,效率低下,容易出錯。②只能做簡單搜索和統(tǒng)計,無法針對海量日志的多維度檢索和統(tǒng)計分析,不能滿足分析要求。③沒有實時監(jiān)控和報警,如針對程序出錯、網(wǎng)絡設備故障、業(yè)務響應超時不能第一時間獲取報警信息并進行故障排查。④故障定位常常需要多個環(huán)節(jié)的日志進行關聯(lián)分析,各設備之間的日志是孤立分散的,無法關聯(lián)。⑤海量數(shù)據(jù)日志無法進行統(tǒng)一歸檔,不方便問題追溯。
目前,海量機器數(shù)據(jù)處理可以分為以下3個類型。①復雜的批量數(shù)據(jù)處理(Batch Data Processing),通常的時間跨度在數(shù)十分鐘到數(shù)小時之間。②基于歷史數(shù)據(jù)的交互式查詢(Interactive Query),通常的時間跨度在數(shù)十秒到數(shù)分鐘之間。③基于實時數(shù)據(jù)流的數(shù)據(jù)處理(Streaming Data Processing),通常的時間跨度在數(shù)百毫秒到數(shù)秒之間。
Spark Streaming提供了一套高效、可容錯的準實時大規(guī)模流式處理框架,將流式計算分解成一系列短小的批處理作業(yè)。整個流式計算根據(jù)業(yè)務需求可以對中間的結(jié)果進行疊加,或者存儲到外部設備,具備實時性和擴展性,而且吞吐量比Storm高出幾倍。
2.2 試驗驗證
2.2.1 模塊設計
模塊設計如圖1所示,包括數(shù)據(jù)接入、數(shù)據(jù)緩存。
2.2.2 模塊說明
日志易系統(tǒng)基于分布式集群設計,即使采用單機安裝,未來橫向擴展也非常容易。
①Nginx。用于日志易系統(tǒng)內(nèi)模塊(Collector,F(xiàn)rontend,Yottaweb)負載均衡和容災。②Collector。處理Agent采集的數(shù)據(jù),做轉(zhuǎn)換后存入消息隊列Kafka。③Zookeeper。用于存儲很重要的配置信息和模塊Leader選舉。④Kafka。分布式消息隊列。⑤Logriver。日志易的日志分析處理模塊。⑥Yottaweb。日志易的Web模塊。
2.2.3 測試方法
采集海南電網(wǎng)機器海量數(shù)據(jù)日志,數(shù)據(jù)接收端為單Collector,以5000 eps為基準值,每隔固定時間10分鐘,逐級增加2 000 eps,通過Manager界面收集測試數(shù)據(jù),直到數(shù)據(jù)接收性能達到拐點。測試方法如表1所示。CPU總體變化趨勢如圖2所示。內(nèi)存總體變化趨勢如圖3所示。I/O總體變化趨勢如圖4所示。
如圖2、圖3、圖4所示,5個凸起波紋分別為5次測試區(qū)間內(nèi)的CPU/內(nèi)存/磁盤IO的趨勢變化,單臺磁盤寫入峰值可達到50 000 KBps,并未達到性能拐點。
3 結(jié) 語
經(jīng)過實際測試,在總量1 000萬條的海量數(shù)據(jù),經(jīng)過實時流處理,存在5類不同格式的樣本數(shù)據(jù)量環(huán)境。①系統(tǒng)響應時間小于3秒;②并發(fā)用戶數(shù)大于100個;③性能數(shù)據(jù)采集時間≤300秒;④資源利用率:CPU<50%、磁盤I/O<25%、網(wǎng)絡吞吐量<20%
主要參考文獻
[1]齊劍雄.分布式日志采集系統(tǒng)數(shù)據(jù)傳輸分析研究[J].軟件,2012(10).
[2]朱璐.淺談電網(wǎng)公司一體化、可視化、智能化的信息通信調(diào)度理論體系[J].中國新通信,2013(20).
[3]夏海元.面向Big Data的數(shù)據(jù)處理技術概述[J].數(shù)字技術與應用,2012(3).