向 陽,杜 君
(中國中鐵大橋局集團有限公司 武漢橋梁特種技術有限公司,武漢 430205)
橋梁在建成通車后,隨著溫度、濕度、風速等自然氣候環(huán)境的侵害,以及日益增加的交通荷載,會導致橋梁逐漸老化、結構性能不斷退化,嚴重時會引起限載通行、關閉交通甚至倒塌的嚴重后果,給人們的生命財產(chǎn)安全帶來危險。因此,很多的橋梁安裝橋梁健康監(jiān)測系統(tǒng),橋梁健康監(jiān)測系統(tǒng)通過安裝在橋梁上的溫度、撓度、索力、濕度、傾角、應變、位移、振動和風速等傳感器實時采集監(jiān)測數(shù)據(jù),將這些數(shù)據(jù)實時傳輸至后臺服務器,后臺專家系統(tǒng)根據(jù)相應的閾值對其進行預警及分析評估。其中,振動、索力等采樣頻率較高,每秒至少采集1次、有的甚至高達上百次。平均一座橋梁上安裝100多個傳感器進行實時監(jiān)測,傳感器每天采集的數(shù)據(jù)早就達到GB級別[1-9]。面對橋梁監(jiān)測傳感器網(wǎng)絡中的高速監(jiān)測數(shù)據(jù)流以及數(shù)據(jù)庫存儲的海量大數(shù)據(jù),若在單個服務器上實現(xiàn)數(shù)據(jù)的存儲及處理分析,傳統(tǒng)的關系型數(shù)據(jù)庫管理系統(tǒng)已經(jīng)到達極限,并不能有效地存儲和分析處理這種級別的大數(shù)據(jù),現(xiàn)在需要有效、可靠的大數(shù)據(jù)分析與處理方法,專門快速采集及海量存儲解析這些大量數(shù)據(jù)。因此,有必要對橋梁健康監(jiān)測系統(tǒng)中的大數(shù)據(jù)采集、存儲和分析處理做相應的
研究[10-18]。
數(shù)據(jù)流的定義:一個由有先后順序關系且個數(shù)隨時間不斷增加的元組構成的數(shù)據(jù)集,如式(1):
其中,ei是時刻ti出現(xiàn)的序列元素。橋梁健康監(jiān)測系統(tǒng)傳感器網(wǎng)絡中傳遞的傳感器監(jiān)測數(shù)據(jù)即為數(shù)據(jù)流,這些數(shù)據(jù)具有如下特點:
(1)傳感器數(shù)據(jù)流中的數(shù)據(jù)實時高速傳輸、轉瞬即逝,每個數(shù)據(jù)只能夠被“看”一次;
(2)傳感器數(shù)據(jù)流是無限的、源源不斷的;
(3)傳感器數(shù)據(jù)流中的數(shù)據(jù)規(guī)模很大。
面對橋梁監(jiān)測傳感器網(wǎng)絡中海量數(shù)據(jù)流的數(shù)據(jù)查詢,需要多次不斷地采集查詢傳感器,區(qū)別于對傳統(tǒng)數(shù)據(jù)庫的單次或者幾次查詢,屬于一種長期不間斷實時查詢[18]。橋梁監(jiān)測傳感器網(wǎng)絡中的海量高速數(shù)據(jù)流可以采用基于時間片驅(qū)動的滑動窗口技術,滑動窗口為計算機緩存,保存的是當前時間周期間隙內(nèi)的最新數(shù)據(jù)序列。通過這種方式可以實現(xiàn)對橋梁監(jiān)測傳感器網(wǎng)絡中海量數(shù)據(jù)流的實時查詢采集。
時間片驅(qū)動的滑動窗口的定義:設S[t–T:t]為t時刻傳感器數(shù)據(jù)流S的滑動窗口,Δt是時間片周期。若是S[t–T:t]于每一個Δt周期的結束時刻產(chǎn)生變化為S[t+Δt–T:t+Δt],則稱S[t–T:t]為時間片驅(qū)動的滑動窗口。時間片驅(qū)動滑動窗口每隔Δt固定的時間間隔更新一次,實際應用中應按照具體情況設置Δt數(shù)據(jù)的大小,根據(jù)理論要求及實踐規(guī)律,T值應大于時間周期Δt。
K線圖又稱蠟燭圖,由股市的開盤價和收盤價以及股市的最高價和最低價這4個數(shù)據(jù)組成,用于統(tǒng)計分析股價的漲跌趨勢,普遍運用于股票證券市場。K線圖中的矩形實體有2種,其中,紅色實體是陽線,綠色實體為陰線。X軸坐標為時間,Y軸坐標為監(jiān)測數(shù)據(jù),將每天的陽線陰線全部畫出即形成K線圖。如果實體表示的時間周期內(nèi)的結束值大于起始值,即監(jiān)測值增漲,則實體為紅色陽線,相反則為綠色陰線。如果起始值與結束值大小相同,則為十字線。最高值和實體之間的線被稱為上影線,最低值和實體間的線稱為下影線。根據(jù)時間周期大小的不同,繪制小時K線圖、日K線圖和月K線圖等[19]。
面對橋梁監(jiān)測中實時采集數(shù)據(jù)流的查詢統(tǒng)計,例如,查詢時傳感器監(jiān)測的數(shù)據(jù)超出給定的閾值,則發(fā)出警報;統(tǒng)計某段時間內(nèi),監(jiān)測數(shù)據(jù)的最大值、最小值等。只需要長期保存監(jiān)測參數(shù)在每一個時間周期中的4個數(shù)據(jù):起始值、最高值、最低值和結束值,如圖1所示,摒棄了周期中無需長期保留數(shù)量龐大的中間值,只保留了4個關鍵數(shù)據(jù),具有數(shù)據(jù)存儲量小的特點,是監(jiān)測系統(tǒng)中處理海量數(shù)據(jù)流的一種好方法。同時,用K線圖描述監(jiān)測參數(shù)的方法,能實時形象地反映出監(jiān)測數(shù)據(jù)的波動狀況。
圖1 傳感器網(wǎng)絡中的大數(shù)據(jù)采集K線圖
圖2描述了一個基于K線圖時間片驅(qū)動的滑動窗口數(shù)據(jù)流查詢處理模型,用于實現(xiàn)橋梁健康監(jiān)測中的大數(shù)據(jù)采集。其具體工作原理流程:傳感器采集的數(shù)據(jù)流,通過數(shù)據(jù)緩沖區(qū)并添加到時間片滑動窗口,不斷查詢窗口計算結果,自動預警。流查詢處理器讀取采集每個時間片滑動窗口數(shù)據(jù)流的K線圖關鍵數(shù)據(jù)(起始值,最高值,最低值,結束值)并上傳云端存入到海量存儲設備,滑動窗口根據(jù)實際情況設置時間片周期,當?shù)竭_固定時間片周期時,更新當前K線圖概要數(shù)據(jù),同時拋棄前一個周期的數(shù)據(jù),并將最新的數(shù)據(jù)進行上傳保存。
本文提出的這種基于K線圖時間片驅(qū)動的滑動窗口數(shù)據(jù)流處理模型,是將基于時間片的滑動窗口數(shù)據(jù)流查詢與K線圖相結合,不僅實現(xiàn)了對橋梁監(jiān)測傳感器網(wǎng)絡中的海量數(shù)據(jù)流的實時快速采集,而且還通過K線圖較少的數(shù)據(jù)個數(shù),快速、形象地反應了橋梁數(shù)據(jù)流的變化趨勢及波動狀況。
圖2 基于K線圖時間片驅(qū)動的滑動窗口數(shù)據(jù)流處理模型
橋梁健康監(jiān)測系統(tǒng)是對橋梁外部環(huán)境及結構內(nèi)力狀態(tài)進行實時監(jiān)測采集,如環(huán)境溫濕度、應變、振動和索力等。其中,溫濕度屬于外部環(huán)境,變化周期較長,測量周期可以是小時級別,因此數(shù)據(jù)量較小。但某些結構內(nèi)力如振動、索力等屬于變化周期較短的參數(shù),采集頻率平均可以達到50 Hz,并要求每天24 h不間斷工作,才能實時反應橋梁的內(nèi)力狀況。以某單個橋為例,其振動及索力監(jiān)測點總共達到100個,每個監(jiān)測點數(shù)據(jù)采集頻率為50次/s,精確度為16 bit,一天的純數(shù)據(jù)將近1 GB。同時,隨著監(jiān)測的橋梁數(shù)目的增多,以及對監(jiān)測數(shù)據(jù)長年的累積存儲,橋梁監(jiān)測數(shù)據(jù)庫的存儲量將會超過TB,甚至達到PB級別。
傳統(tǒng)的單臺服務器存儲方式已經(jīng)不能滿足橋梁監(jiān)測日益增長的數(shù)據(jù)量儲存需求。本文采用HDFS分布式存儲模型,解決海量數(shù)據(jù)存儲問題。
HDFS(Hadoop Distributed File System)是一種Hadoop大數(shù)據(jù)框架下的分布式文件系統(tǒng),主要用于大數(shù)據(jù)的分布式存儲。HDFS實際上是由數(shù)百個甚至數(shù)千個廉價小型服務器組成的集群,通過眾多服務器一起實現(xiàn)數(shù)據(jù)的分布存儲,每個數(shù)據(jù)文件都至少有1個冗余備份,也就是每個數(shù)據(jù)文件都將至少被存儲2次,如果存數(shù)據(jù)的某個服務器發(fā)生了故障,至少還有1個備份數(shù)據(jù),所以,HDFS具有高容錯性。這比單獨使用一臺大型服務器在遇到故障時的成本付出要少得多,現(xiàn)在,如果某個服務器發(fā)生故障,只需要付出一臺廉價服務器的成本。
HDFS分布式存儲模型,如圖3所示。
(1)NameNode是一臺中心服務器,在整個集群系統(tǒng)中有且僅有一臺,是唯一用于管理所有的DataNode數(shù)據(jù)節(jié)點的服務器。
(2)每個DataNode節(jié)點為一臺數(shù)據(jù)存儲服務器,用于存儲數(shù)據(jù)文件以及相應的冗余備份副本,并對數(shù)據(jù)進行一些讀寫操作。
(3)NameNode節(jié)點周期性地實時查詢每個DataNode節(jié)點的狀態(tài),掌握每個數(shù)據(jù)塊存儲的服務器節(jié)點的位置等相關信息,并能知道節(jié)點是否需要維護。
圖3 HDFS分布式存儲模型圖
HDFS分布式存儲模型工作原理:用戶機Client通過向NameNode發(fā)送數(shù)據(jù)讀寫請求,NameNode返回數(shù)據(jù)塊存儲的DataNode節(jié)點位置,Client節(jié)點與DataNode節(jié)點進行相應的讀寫操作。在整個HDFS集群系統(tǒng)中,NameNode起到核心管理作用。
通過HDFS分布式存儲模型,利用服務器集群分布式存儲的方式有效解決了橋梁健康監(jiān)測中的海量數(shù)據(jù)存儲問題。
Map/Reduce模型是一種用于大數(shù)據(jù)計算處理的軟件模型框架,其關鍵技術是“Map(映射)和Reduce(規(guī)約)”。將海量數(shù)據(jù)分割成多個獨立的輸入數(shù)據(jù)塊給M臺服務器進行并行處理;每臺服務器通過Map映射函數(shù)計算處理自己那部分輸入數(shù)據(jù)塊,并生成計算結果;R臺服務器通過Reduce規(guī)約函數(shù)將所有的計算結果進行規(guī)約匯總、分析計算,得到最終的處理結果。橋梁健康監(jiān)測系統(tǒng)中的海量大數(shù)據(jù)可采用Map/Reduce模型,將海量數(shù)據(jù)分布在服務器集群中,通過服務器集群進行同時分析處理,相比傳統(tǒng)的單臺服務器分析處理運算,將會大幅縮短運算時間,提高計算效率。
由于橋梁斜拉索的銹蝕斷絲等病害容易致使斜拉索索力及其相應的結構內(nèi)力狀態(tài)產(chǎn)生改變,甚至有可能導致橋梁倒塌,因此,需要對橋梁斜拉索的索力進行實時監(jiān)測。
在每根索的中央斷面處安裝加速度傳感器,傳感器輸出的數(shù)據(jù)經(jīng)快速傅立葉變換計算處理后可得到每根索的主頻率。索力可根據(jù)公式(2)計算[20-23]:
式(2)中:T為索力;f為拉索的一階頻率;L為索長;W為單位長度索重;g為重力加速度。
通過基于Map/Reduce的索力分布式并行處理模型可以實現(xiàn)對索力歷史大數(shù)據(jù)的統(tǒng)計分析處理功能。例如,統(tǒng)計10年內(nèi)索力超過指定閾值的次數(shù):(1)通過Map/Reduce中的Map,將橋梁監(jiān)測的歷史索力數(shù)據(jù)輸入文件分割成M份,把任務分解成M個子任務,通過服務器集群并行運算分析,提高系統(tǒng)的運算速度,減少分析時間;(2)通過Reduce把M個子任務計算的結果匯總統(tǒng)計,得到最終結果。其中,索力輸入文件格式,如表1所示。
基于Map/Reduce的索力分布式并行處理模型的具體工作流程,如圖4所示。Master節(jié)點服務器為整個模型框架的主節(jié)點服務器,負責整個系統(tǒng)的運行、管理、分配以及調(diào)度,為空閑的worker節(jié)點服務器分配Map作業(yè)以及Reduce作業(yè)。Master主服務器將海量數(shù)據(jù)分割成M份數(shù)據(jù)塊,并將其分配給空閑的worker服務器集群,服務器集群并行讀取對應分割的索力數(shù)據(jù)塊文件,服務器每讀取一條記錄時,一旦超過閾值,就生成一條索力中間鍵值對<key,value>,其中,key為索力編號,value表示超過閾值的次數(shù)。Master將記錄的索力中間鍵值對的位置轉發(fā)給執(zhí)行Reduce作業(yè)的R個worker服務器節(jié)點。執(zhí)行Reduce規(guī)約作業(yè)的worker服務器最后讀取所有的索力中間鍵值對,通過服務器集群并行統(tǒng)計,計算出最終結果。當所有的Map和Reduce作業(yè)都完成了,Master服務器將Reduce結果返回給用戶程序。
表1 索力數(shù)據(jù)文件格式
圖4 基于Map/Reduce的索力分布式并行處理工作流程
設監(jiān)測傳感器的數(shù)量為n個,采集頻率為f,每天存儲的數(shù)據(jù)量為S,存儲一天監(jiān)測數(shù)據(jù)的數(shù)據(jù)量為:
若采用基于K線圖時間片驅(qū)動的滑動窗口數(shù)據(jù)流查詢處理模型,使用k秒鐘K線圖,每k秒存儲起始值、最高值、最低值、結束值這4個數(shù)據(jù),那么存儲一天監(jiān)測數(shù)據(jù)的數(shù)據(jù)量為:
式(3)與式(4)中S值的大小取決于在實際的橋梁實時健康監(jiān)測中,索力、振動等采集頻率一般是20 Hz~100 Hz左右,采用4 s K線圖基本可以滿足橋梁監(jiān)測的需求,使用本模型,實際存儲的數(shù)據(jù)量至少可以減少20倍。
實驗采用4臺服務器組建計算集群,每臺服務器配置相同,CPU:Intel雙核1.80 GHz,內(nèi)存:8 GB。利用Hadoop大數(shù)據(jù)框架中的Map/Reduce模型,驗證基于Map/Reduce的索力分布式并行處理模型,其中,一臺服務器作為Master管理節(jié)點,其余3臺服務器作為worker計算節(jié)點。針對不同大小的索力文件,分別采用傳統(tǒng)的單機計算模式與本文的Map/Reduce并行模型進行處理,利用專家分析評估系統(tǒng),統(tǒng)計索力超過某一閾值的次數(shù),將系統(tǒng)的運算執(zhí)行時間進行比較,實驗結果,如圖5所示。
圖5 單機系統(tǒng)與Map/Reduce集群系統(tǒng)執(zhí)行時間對比
從以上仿真結果可以看出,運行Hadoop平臺需要一定的時間開銷,因此當數(shù)據(jù)量較小時,集群并行計算的運行時間反而大于單臺服務器執(zhí)行的時間。但隨著數(shù)據(jù)量的增大,Map/Reduce集群將索力數(shù)據(jù)文件分派給多個worker節(jié)點進行并行處理,其運算總時間小于單臺服務器的執(zhí)行時間,隨著索力文件大小的不斷增加,兩者的總時間差距也越來越大。
本文在橋梁健康監(jiān)測的大數(shù)據(jù)采集、存儲及分析處理3個方面,提出一種基于K線圖時間片驅(qū)動的滑動窗口數(shù)據(jù)流處理模型,該模型實現(xiàn)橋梁實時監(jiān)測傳感器網(wǎng)絡大數(shù)據(jù)的高速采集,通過K線圖模型,不僅形象地反應監(jiān)測數(shù)據(jù)的狀況波動,而且減少了數(shù)據(jù)采集量,優(yōu)化了云端海量存儲。將HDFS分布式存儲模型應用到橋梁健康監(jiān)測中,解決了健康監(jiān)測中海量數(shù)據(jù)的存儲問題。提出基于Map/Reduce的索力分布式并行處理模型,并將該模型應用于索力大數(shù)據(jù)分析計算處理,通過搭建基于該模型的分布式計算集群,實現(xiàn)專家系統(tǒng)對索力歷史海量數(shù)據(jù)的分析評估,減少系統(tǒng)分析時間,提高評估效率。
本文分別對橋梁實時健康監(jiān)測的大數(shù)據(jù)采集,大數(shù)據(jù)存儲,大數(shù)據(jù)分析3個部分進行了分析與研究,但對于大數(shù)據(jù)預測還有待進一步的挖掘和分析。