許劭慶++馬彪++安海英
摘 要:為了提高電力行業(yè)網(wǎng)絡(luò)各類監(jiān)控設(shè)備告警信息和告警事件的處理速度,本文設(shè)計(jì)了由中心控制節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、配置服務(wù)節(jié)點(diǎn)等構(gòu)成的海量數(shù)據(jù)處理平臺(tái)。通過(guò)中心控制節(jié)點(diǎn)實(shí)現(xiàn)任務(wù)的分解與控制,計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)任務(wù)計(jì)算。使用基于文件格式的方式進(jìn)行數(shù)據(jù)采集,利用Map/Reduce的模型進(jìn)行數(shù)據(jù)匯總。采用本平臺(tái)能夠?qū)崿F(xiàn)對(duì)海量告警信息的捕獲和處理,保證告警分析的效率。
關(guān)鍵詞:海量告警;分布式;數(shù)據(jù)處理
中圖分類號(hào): TP311 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1673-1069(2016)35-175-2
0 引言
隨著當(dāng)今世界互聯(lián)網(wǎng)的迅猛發(fā)展,電力行業(yè)也開(kāi)始運(yùn)用現(xiàn)代信息技術(shù)對(duì)電網(wǎng)的運(yùn)行狀況進(jìn)行監(jiān)控,電力網(wǎng)絡(luò)各類監(jiān)控設(shè)備每天都會(huì)產(chǎn)生大量的告警信息和告警事件,這些信息的采集、清洗、分析以及匯總所包含數(shù)據(jù)的計(jì)算與處理復(fù)雜度非常高,計(jì)算量非常大,所以會(huì)對(duì)計(jì)算機(jī)硬件性能有很高的要求。分布式計(jì)算技術(shù)能夠?qū)⒁恍┍旧磉m合分解成大量更小計(jì)算片段的復(fù)雜問(wèn)題進(jìn)行分解,然后再將這些更小的計(jì)算片段分配到多個(gè)計(jì)算資源上,利用多個(gè)計(jì)算資源分別對(duì)這些小的計(jì)算片段進(jìn)行分布式求解,這樣不但有效的利用了各個(gè)閑置的計(jì)算資源,也加快了計(jì)算執(zhí)行的效率,充分發(fā)揮了計(jì)算的高并行性。為此我們可以將分布式計(jì)算技術(shù)引入到電力行業(yè)告警信息和告警事件的處理中,提高信息的處理速度,為電力系統(tǒng)的運(yùn)維監(jiān)管提高效率。
本文是通過(guò)對(duì)當(dāng)前已有的成熟的分布式計(jì)算系統(tǒng)如google的map/reduce架構(gòu)以及hadoopDB等系統(tǒng)的研究調(diào)查,借鑒了map/reduce的基本思想,針對(duì)電力行業(yè)運(yùn)維監(jiān)控中的各種海量告警數(shù)據(jù)處理的業(yè)務(wù),提出的分布式海量數(shù)據(jù)處理系統(tǒng)平臺(tái)。
1 總體結(jié)構(gòu)設(shè)計(jì)
海量分布式處理平臺(tái)完成數(shù)據(jù)采集、任務(wù)分發(fā)、任務(wù)處理以及任務(wù)匯總等多項(xiàng)內(nèi)容。平臺(tái)主要包括了中心控制節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、配置服務(wù)節(jié)點(diǎn)、拆分節(jié)點(diǎn)、日志節(jié)點(diǎn)、數(shù)據(jù)采集傳輸部件以及電信網(wǎng)絡(luò)單元這七大部分。各部分之間互相通信,互相配合完成任務(wù)的拆分,發(fā)送及執(zhí)行。其中Master為中心控制節(jié)點(diǎn),CU為計(jì)算節(jié)點(diǎn),CS為配置服務(wù)節(jié)點(diǎn),TS為拆分節(jié)點(diǎn),LS為日志節(jié)點(diǎn),MED為數(shù)據(jù)采集傳輸部件,NES為電信網(wǎng)絡(luò)單元,能獨(dú)立完成一定的傳輸功能。
2 節(jié)點(diǎn)設(shè)計(jì)
2.1 中心控制節(jié)點(diǎn)
在整個(gè)系統(tǒng)中,中心控制節(jié)點(diǎn)是核心,負(fù)責(zé)系統(tǒng)中所有資源的調(diào)度,并根據(jù)計(jì)算節(jié)點(diǎn)的狀態(tài)分配系統(tǒng)中的任務(wù),進(jìn)行相關(guān)的數(shù)據(jù)分析和計(jì)算,協(xié)調(diào)系統(tǒng)的整體運(yùn)行。同時(shí),為了防止主控節(jié)點(diǎn)意外掛機(jī)導(dǎo)致的數(shù)據(jù)丟失的現(xiàn)象,采用雙機(jī)熱備的機(jī)制來(lái)作為主控節(jié)點(diǎn)的備份。
Master中包含的主要子模塊有通信、任務(wù)調(diào)度、任務(wù)管理、定時(shí)器和Corba、鎖管理等模塊。
①通信子模塊:主要負(fù)責(zé)的是Master和其他子模塊之間的通信,負(fù)責(zé)分發(fā)和接收模塊間的消息報(bào)文;②任務(wù)管理子模塊:主要負(fù)責(zé)對(duì)系統(tǒng)中處理任務(wù)的管理,包括最初的任務(wù)創(chuàng)建、任務(wù)運(yùn)行過(guò)程中的狀態(tài)保持、大任務(wù)的分解、所有任務(wù)的維護(hù)以及任務(wù)執(zhí)行等功能。③任務(wù)調(diào)度子模塊:主要完成任務(wù)調(diào)度的相關(guān)工作,包括依據(jù)任務(wù)的優(yōu)先級(jí)對(duì)系統(tǒng)任務(wù)進(jìn)行調(diào)度安排,鎖進(jìn)程的管理與維護(hù),維持進(jìn)程間的通訊等。④定時(shí)器模塊:主要負(fù)責(zé)檢查系統(tǒng)是否超時(shí),以及處理超時(shí)后觸發(fā)的事件等問(wèn)題,定時(shí)的檢測(cè)系統(tǒng)的各種狀態(tài)等。⑤Master-Standby同步模塊:主要負(fù)責(zé)同步Master上的任務(wù)到Standby,以減少因?yàn)镸aster出故障后造成的損失。
2.2 分布式計(jì)算節(jié)點(diǎn)
計(jì)算節(jié)點(diǎn)負(fù)責(zé)的是對(duì)海量數(shù)據(jù)進(jìn)行具體的計(jì)算分析以及對(duì)數(shù)據(jù)的具體任務(wù)處理,涉及到最初的數(shù)據(jù)采集、計(jì)算完畢后的數(shù)據(jù)匯總、匯總結(jié)束后的數(shù)據(jù)備份以及最終結(jié)果的查詢等階段。計(jì)算節(jié)點(diǎn)是整個(gè)系統(tǒng)中的基礎(chǔ),是任務(wù)執(zhí)行的基本單元,節(jié)點(diǎn)在運(yùn)行的過(guò)程中,要分別與中心控制節(jié)點(diǎn)、外部模塊以及參數(shù)配置節(jié)點(diǎn)等部分進(jìn)行消息通訊,在處理這些信息的同事,還要通過(guò)任務(wù)調(diào)度實(shí)現(xiàn)對(duì)任務(wù)的并行處理調(diào)度。一個(gè)完整的計(jì)算節(jié)點(diǎn)通常由任務(wù)管理模塊、通訊模塊、數(shù)據(jù)操作模塊以及定時(shí)器構(gòu)成。計(jì)算節(jié)點(diǎn)中采用多線程技術(shù)實(shí)現(xiàn)以上的各項(xiàng)功能。
CU的主要作用就是并行高性能化地執(zhí)行各種小作業(yè),當(dāng)有小作業(yè)需要被執(zhí)行時(shí),CU的具體執(zhí)行流程為:①通過(guò)負(fù)載均衡模塊,計(jì)算節(jié)點(diǎn)CU主動(dòng)向Master主控節(jié)點(diǎn)請(qǐng)求作業(yè),并獲去作業(yè)的相關(guān)任務(wù);②Master向主控進(jìn)程中通信模塊的Master Agent發(fā)送分配的新作業(yè),并為其分配新的任務(wù);③主控進(jìn)程中通信模塊的Progress Agent接收到在作業(yè)管理調(diào)度模塊根據(jù)申請(qǐng)過(guò)來(lái)的作業(yè)生成對(duì)應(yīng)的XXTask,然后將作業(yè)通過(guò)長(zhǎng)連接的方式發(fā)送給工作進(jìn)程Progress Agent;④作業(yè)管理模塊受到已接收到新作業(yè)的工作進(jìn)程的調(diào)度,生成工作進(jìn)程相對(duì)應(yīng)的XXTask;⑤新作業(yè)生成的Request被工作進(jìn)程的作業(yè)管理模塊通過(guò)管道放入MiddleServer中間層的請(qǐng)求隊(duì)列中;⑥Request隊(duì)列中所有的請(qǐng)求都是通過(guò)線程池模塊調(diào)用自己相應(yīng)的處理函數(shù)aio_process_request()來(lái)處理的,為了保證不同的小作業(yè)可以多線程并行地處理,線程池根據(jù)服務(wù)器的性能設(shè)置了線程的數(shù)量。⑦具體的作業(yè)通過(guò)線程池調(diào)用DB數(shù)據(jù)處理模塊來(lái)執(zhí)行,比如數(shù)據(jù)創(chuàng)建,數(shù)據(jù)查詢等等。⑧最終的執(zhí)行結(jié)果是在作業(yè)執(zhí)行完畢后一層層的向上層返回的,數(shù)據(jù)結(jié)果還是被線程池通過(guò)管道機(jī)制逐層返回給Master
3 數(shù)據(jù)采集處理
平臺(tái)的數(shù)據(jù)采集功能是采集網(wǎng)元數(shù)據(jù),然后,根據(jù)不同的網(wǎng)元類型和網(wǎng)元號(hào),對(duì)不同設(shè)備的性能數(shù)據(jù)以及告警數(shù)據(jù),進(jìn)行數(shù)據(jù)過(guò)濾分析并存入到平臺(tái)數(shù)據(jù)庫(kù)中,為管理人員實(shí)現(xiàn)數(shù)據(jù)的結(jié)構(gòu)化管理提供基礎(chǔ),方便管理人員數(shù)據(jù)操作、分析以及領(lǐng)導(dǎo)的決策。本文數(shù)據(jù)采集采用的是一種基于文件格式的采集方式。采集任務(wù)的方案是計(jì)算節(jié)點(diǎn)主動(dòng)從FTP服務(wù)器上取數(shù)據(jù),然后將數(shù)據(jù)采集入庫(kù)。數(shù)據(jù)采集流程步驟為:第1步:外部系統(tǒng)Med中間層接收到RNC因產(chǎn)生原始數(shù)據(jù),形成數(shù)據(jù)文件而發(fā)來(lái)已經(jīng)準(zhǔn)備好的通知, 然后將請(qǐng)求轉(zhuǎn)發(fā)到本系統(tǒng)Master控制節(jié)點(diǎn)。第2步:任務(wù)拆分服務(wù)器TS收到Master因采集請(qǐng)求生成的大任務(wù), 在將其拆分多個(gè)小任務(wù)之后返還給Master,Master將小任務(wù)放入任務(wù)隊(duì)列中。第3步:Master接收到計(jì)算節(jié)點(diǎn)CU主動(dòng)申請(qǐng)的采集任務(wù),Med將執(zhí)行該任務(wù)的CU信息進(jìn)行記錄。第4步:CU從指定的FTP服務(wù)器上下載RNC上傳的數(shù)據(jù),為了能夠使數(shù)據(jù)以結(jié)構(gòu)化的形式入庫(kù),調(diào)用解析庫(kù)對(duì)數(shù)據(jù)進(jìn)行解析。第5步:CU在采集任務(wù)完成后,向控制節(jié)點(diǎn)發(fā)送任務(wù)執(zhí)行完成報(bào)告,在收到任務(wù)消息報(bào)告之后,Master將從隊(duì)列中移除任務(wù)。
4 數(shù)據(jù)匯總處理
系統(tǒng)的數(shù)據(jù)匯總是在對(duì)網(wǎng)元采集的數(shù)據(jù)計(jì)算處理后,進(jìn)行一系列的有條件和邏輯順序的數(shù)據(jù)加工和整合。本文采的數(shù)據(jù)匯總采用的是Map/Reduce的模型,在執(zhí)行的過(guò)程中,采用臨時(shí)表存儲(chǔ)Map任務(wù)計(jì)算的臨時(shí)結(jié)果,然后再通過(guò)Reduce任務(wù),根據(jù)臨時(shí)表中的數(shù)據(jù)計(jì)算匯總。通常情況下,策略數(shù)據(jù)匯總是具有一定策略的,最常用的匯總策略有時(shí)間維度和對(duì)象維度兩種,可以按照時(shí)間(天)或者采集對(duì)象(網(wǎng)元)來(lái)進(jìn)行匯總。
Reduce的機(jī)制來(lái)將匯總?cè)蝿?wù)分解成多個(gè)Map和Reduce小任務(wù),以解決匯總?cè)蝿?wù)包含表格查詢跨庫(kù)跨表格的問(wèn)題,讓計(jì)算節(jié)點(diǎn)進(jìn)行歸并被拆分成四個(gè)小任務(wù)的Task1。
可以根據(jù)Map/Reduce的機(jī)制來(lái)將匯總?cè)蝿?wù)分解成多個(gè)Map和Reduce小任務(wù),以解決匯總?cè)蝿?wù)包含表格查詢跨庫(kù)跨表格的問(wèn)題,圖6中給出了發(fā)給計(jì)算節(jié)點(diǎn),讓計(jì)算節(jié)點(diǎn)進(jìn)行歸并被拆分成四個(gè)小任務(wù)的Task1。
數(shù)據(jù)匯總的具體過(guò)程為:①計(jì)算節(jié)點(diǎn)CU接收到Map小任務(wù),先生成臨時(shí)表,然后執(zhí)行。②當(dāng)Master確定所有Map任務(wù)完成以后,再發(fā)送reduce任務(wù),CU此時(shí)執(zhí)行Reduce操作,匯總中間臨時(shí)表中的數(shù)據(jù),生成用戶需要的最終結(jié)果集。
5 結(jié)論
本文設(shè)計(jì)了由中心控制節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、配置服務(wù)節(jié)點(diǎn)等構(gòu)成的海量數(shù)據(jù)處理平臺(tái)。通過(guò)中心控制節(jié)點(diǎn)實(shí)現(xiàn)任務(wù)的分解與控制,計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)任務(wù)計(jì)算。使用基于文件格式的方式對(duì)網(wǎng)元進(jìn)行數(shù)據(jù)采集,利用Map/Reduce的模型進(jìn)行數(shù)據(jù)匯總,實(shí)現(xiàn)數(shù)據(jù)的整合。采用本平臺(tái)能夠?qū)崿F(xiàn)對(duì)海量告警信息的捕獲和處理,保證告警分析的效率,為電力系統(tǒng)的運(yùn)維監(jiān)管提供數(shù)據(jù)支撐。
參 考 文 獻(xiàn)
[1] 丁兆云,賈焰,周斌.微博數(shù)據(jù)挖掘研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2014,51(4):691-706.
[2] 黃斌,許舒人,蒲衛(wèi).基于MapReduce的數(shù)據(jù)挖掘平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(2):495-501.
[3] 朱姣姣,葉猛.多模式匹配及其改進(jìn)算法在協(xié)議識(shí)別中的應(yīng)用[J].電視技術(shù),2012,36(7):60-6.
[4] 陳占芳,王歡,畢琳,馮欣,禹建文.基于OA系統(tǒng)的即時(shí)通訊平臺(tái)關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2012,5(04):125-129.