趙虎
【摘要】 基于MapReduce的故障診斷方法將MapReduce運(yùn)用到故障診斷中,有效解決了故障診斷過(guò)程中大數(shù)據(jù)的處理問(wèn)題,大大提高了故障診斷的效率。本文對(duì)故障診斷技術(shù)的發(fā)展進(jìn)行了闡述,針對(duì)故障診斷方法的不足闡述了將MapReduce運(yùn)用其中的優(yōu)勢(shì)。將診斷算法分為迭代和非迭代,使用不同的MapReduce模型分別實(shí)現(xiàn)。
【關(guān)鍵詞】 MapReduce 云計(jì)算 故障診斷 診斷算法
引言
隨著設(shè)備復(fù)雜化程度的提高,故障診斷[1]過(guò)程中處理的數(shù)據(jù)規(guī)模越來(lái)越大,嚴(yán)重制約了故障診斷的效率,如何解決診斷大數(shù)據(jù)就成了亟待解決的問(wèn)題。MapReduce計(jì)算模型[2]是云計(jì)算的關(guān)鍵技術(shù),能組織集群來(lái)處理大規(guī)模數(shù)據(jù)集,對(duì)于大規(guī)模數(shù)據(jù)的快速處理有著巨大的優(yōu)勢(shì)。本文在診斷算法研究基礎(chǔ)上,根據(jù)算法運(yùn)算特點(diǎn),給出了算法MapReduce化實(shí)現(xiàn)的方法。
一、故障診斷技術(shù)
故障診斷技術(shù)是由于建立監(jiān)控系統(tǒng)的需要而發(fā)展起來(lái)的[3]。其發(fā)展至今經(jīng)歷了3個(gè)階段[4],
第一是依靠專家或維修人員的個(gè)人經(jīng)驗(yàn)及簡(jiǎn)單儀表進(jìn)行的故障診斷工作;
第二是以傳感器技術(shù)動(dòng)態(tài)測(cè)試技術(shù)為手段,以信號(hào)分析和建模處理為基礎(chǔ)的現(xiàn)代診斷技術(shù);
近年來(lái),隨著計(jì)算機(jī)技術(shù)智能信息處理技術(shù)的發(fā)展,故障診斷技術(shù)進(jìn)入了新的發(fā)展階段:數(shù)據(jù)處理優(yōu)化建模與知識(shí)處理相融合的智能診斷技術(shù)。
根據(jù)故障診斷算法計(jì)算過(guò)程是否迭代,可將其分為迭代算法和非迭代算法。迭代算法采用迭代式MapReduce框架實(shí)現(xiàn),非迭代算法采用傳統(tǒng)MapReduce框架實(shí)現(xiàn)。
二、MapReduce模型及算法實(shí)現(xiàn)
2.1 傳統(tǒng)MapReduce框架
針對(duì)非迭代診斷算法,直接將算法代入MapReduce中。Map和Reduce函數(shù)根據(jù)算法由用戶定義,兩個(gè)階段具體工作如下。
Map階段:Map節(jié)點(diǎn)讀取輸入數(shù)據(jù),Map函數(shù)采用非迭代診斷算法的計(jì)算公式,將輸入數(shù)據(jù)用Map函數(shù)處理后輸出中間鍵值對(duì)
Reduce階段:Reduce節(jié)點(diǎn)收集Map節(jié)點(diǎn)的輸出
2.2迭代式MapReduce框架
在迭代程序中,每次迭代計(jì)算的輸出是下次迭代的輸入。采用傳統(tǒng)MapReduce框架進(jìn)行計(jì)算時(shí),每次迭代對(duì)應(yīng)一個(gè)MapReduce計(jì)算過(guò)程,需要多次對(duì)任務(wù)進(jìn)行提交,計(jì)算效率低。迭代式MapReduce框架[5]利用通信模塊進(jìn)行迭代結(jié)果的數(shù)據(jù)傳輸,一次任務(wù)提交即可完成整個(gè)計(jì)算。因此,對(duì)于迭代程序的處理,可采用迭代式MapReduce框架來(lái)實(shí)現(xiàn)。
迭代式MapReduce框架在傳統(tǒng)框架上增加了ComMonitor模塊和Transmode模塊。ComMonitor模塊運(yùn)行在NameNode節(jié)點(diǎn),負(fù)責(zé)為各個(gè)節(jié)點(diǎn)提供通信地址、監(jiān)控節(jié)點(diǎn)間的通信,保證每個(gè)計(jì)算任務(wù)獲得相應(yīng)的通信地址。Transmode模塊運(yùn)行在用戶指定的DataNode節(jié)點(diǎn),運(yùn)行前需向ComMonitor模塊進(jìn)行注冊(cè)。通過(guò)心跳來(lái)更新通信信息,并負(fù)責(zé)節(jié)點(diǎn)間數(shù)據(jù)的接收和傳送。
迭代診斷算法的MapReduce化實(shí)現(xiàn)在非迭代算法實(shí)現(xiàn)基礎(chǔ)上,利用通信模塊將每次迭代計(jì)算結(jié)果傳送至原Map節(jié)點(diǎn),供下一輪job使用。一次任務(wù)提交即可完成整個(gè)算法實(shí)現(xiàn)。
三、結(jié)束語(yǔ)
大數(shù)據(jù)時(shí)代的到來(lái),對(duì)故障診斷的實(shí)時(shí)性和準(zhǔn)確性提出了巨大的挑戰(zhàn)?;谠朴?jì)算的故障診斷方法就是在這個(gè)背景下產(chǎn)生的。
本文對(duì)故障診斷技術(shù)的發(fā)展進(jìn)行了闡述,重點(diǎn)研究了兩種MapReduce模型,以及診斷算法在其中的實(shí)現(xiàn)。通過(guò)分析將診斷算法分為迭代和非迭代,迭代算法采用迭代式MapReduce框架實(shí)現(xiàn),非迭代算法通過(guò)傳統(tǒng)MapReduce框架實(shí)現(xiàn)。
參 考 文 獻(xiàn)
[1]李娟, 周東華, 司小勝, 等. 微小故障診斷方法綜述[J]. 控制理論與應(yīng)用, 2012, 29(12):1517-1529.
[2]DEAN J, GHEMAWAT S. MapReduce: Simplified Data Processing on Large Clusters[J]. Communications of the ACM, 2008, 51(1): 107-113.
[3]周東華, 席裕庚. 故障檢測(cè)與診斷技術(shù)[J]. 控制理論與應(yīng)用, 1991, 8(1):1-7.
[4]李偉.復(fù)雜系統(tǒng)的智能故障診斷技術(shù)現(xiàn)狀及其發(fā)展趨勢(shì)[J].計(jì)算機(jī)仿真, 2004, 21(10):4-7.
[5]金偉健, 王春枝. 適于進(jìn)化算法的迭代式MapReduce框架[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(12):3591-3595.