李永生,曾 沁,2,楊玉紅,陳 晉
(1.廣東省氣象探測(cè)數(shù)據(jù)中心,廣東廣州 510080; 2.廣東省氣象臺(tái),廣東廣州 510080; 3.同濟(jì)大學(xué)數(shù)學(xué)系,上海 200082)
基于大數(shù)據(jù)技術(shù)的氣象算法并行化研究
李永生1,曾 沁1,2,楊玉紅1,陳 晉3
(1.廣東省氣象探測(cè)數(shù)據(jù)中心,廣東廣州 510080; 2.廣東省氣象臺(tái),廣東廣州 510080; 3.同濟(jì)大學(xué)數(shù)學(xué)系,上海 200082)
在氣象數(shù)值預(yù)報(bào)解釋應(yīng)用業(yè)務(wù)中,傳統(tǒng)數(shù)值算法的應(yīng)用呈現(xiàn)逐步增加的趨勢(shì),但是隨著算法輸入數(shù)據(jù)種類和數(shù)據(jù)量的增加導(dǎo)致算法的完成時(shí)間大幅增長(zhǎng),甚至出現(xiàn)了算法完成時(shí)間性能瓶頸。為了突破算法時(shí)間上的性能瓶頸,基于OpenCV算法庫(kù),實(shí)現(xiàn)了多元逐步回歸和卡爾曼濾波算法的執(zhí)行模塊,采用Map-Reduce計(jì)算框架設(shè)計(jì)和實(shí)現(xiàn)了多站點(diǎn)輸入數(shù)據(jù)分割的并行化執(zhí)行模塊;規(guī)范了算法輸入和輸出的數(shù)據(jù)格式,設(shè)計(jì)了并行算法的Web服務(wù)流程以及實(shí)現(xiàn)了基于Rest Web Service的算法訪問(wèn)接口。業(yè)務(wù)應(yīng)用實(shí)驗(yàn)測(cè)試表明,并行算法能夠很好地滿足氣象業(yè)務(wù)實(shí)際需求。
大數(shù)據(jù)分析技術(shù);并行化;氣象數(shù)值算法;Web服務(wù)
在氣象預(yù)報(bào)領(lǐng)域?qū)⒍嘣鸩交貧w、卡爾曼濾波等數(shù)值算法引入到對(duì)數(shù)值預(yù)報(bào)解釋中已得到廣泛的應(yīng)用,這是對(duì)數(shù)值預(yù)報(bào)這一綜合性的結(jié)果運(yùn)用動(dòng)力學(xué)、統(tǒng)計(jì)學(xué)技術(shù)再一次進(jìn)行加工、修正,使預(yù)報(bào)精度得到進(jìn)一步提高,以達(dá)到有價(jià)值的要素預(yù)報(bào)水平。實(shí)踐證明:通過(guò)數(shù)值預(yù)報(bào)的解釋應(yīng)用,確實(shí)可以使要素預(yù)報(bào)比客觀數(shù)值預(yù)報(bào)模式直接輸出的預(yù)報(bào)有明顯提高[1]。陸如華等從氣象應(yīng)用角度介紹了卡爾曼濾波的基本原理及其遞推算法[2];相關(guān)研究也進(jìn)一步表明,數(shù)值預(yù)報(bào)解釋應(yīng)用算法在數(shù)值預(yù)報(bào)業(yè)務(wù)中得到了廣泛應(yīng)用,但這些研究對(duì)算法性能和算法的并行化設(shè)計(jì)和實(shí)現(xiàn)涉及較少,隨著應(yīng)用的逐步深入以及數(shù)值預(yù)報(bào)解釋應(yīng)用算法輸入數(shù)據(jù)的逐步增加,出現(xiàn)了一定的計(jì)算瓶頸。因此如何解決數(shù)值算法在數(shù)值預(yù)報(bào)解釋應(yīng)用中的計(jì)算瓶頸問(wèn)題是氣象預(yù)報(bào)業(yè)務(wù)迫切需要解決的。目前大數(shù)據(jù)處理技術(shù)的逐漸成熟為這一問(wèn)題的解決提供了契機(jī)。
算法平臺(tái)實(shí)現(xiàn)了多元逐步回歸和卡爾曼濾波算法,基于跨平臺(tái)的通用算法庫(kù)OpenCV(Open Source Computer Vision Library)實(shí)現(xiàn)了多元逐步回歸和卡爾曼濾波兩種數(shù)值算法的執(zhí)行模塊。文中重點(diǎn)討論基于大數(shù)據(jù)分析技術(shù)的算法并行化設(shè)計(jì)實(shí)現(xiàn)和算法應(yīng)用設(shè)計(jì),對(duì)算法本身的原理和算法在數(shù)值預(yù)報(bào)解釋應(yīng)用中的參數(shù)選擇等不做詳細(xì)的描述和說(shuō)明[1]。
1.1 算法并行化策略
針對(duì)數(shù)值算法在數(shù)值預(yù)報(bào)解釋應(yīng)用中的并行化可以從基于算法本身的并行化處理方案和基于數(shù)據(jù)分割的并行化處理方案兩方面著手。算法本身的并行化需要強(qiáng)大的硬件資源支持,需要一定規(guī)模的資金投入,在應(yīng)用方面受到一定的限制[3],因此設(shè)計(jì)主要采取基于數(shù)據(jù)分割的并行化處理方案,這也是MapReduce編程模型的典型應(yīng)用。
首先,數(shù)值預(yù)報(bào)解釋應(yīng)用中的數(shù)據(jù)大都涉及多年資料的統(tǒng)計(jì)分析和回歸算法應(yīng)用,而算法應(yīng)用過(guò)程的統(tǒng)計(jì)中間量,可以根據(jù)時(shí)間長(zhǎng)度和計(jì)算節(jié)點(diǎn)數(shù)目進(jìn)行適當(dāng)分割,從而分解到各個(gè)計(jì)算節(jié)點(diǎn)(這是Map函數(shù)過(guò)程),并行計(jì)算后,對(duì)各個(gè)時(shí)間段的統(tǒng)計(jì)量[4]在Reduce函數(shù)過(guò)程中進(jìn)行匯總分析,從而得到全時(shí)段的計(jì)算統(tǒng)計(jì)量,實(shí)現(xiàn)算法運(yùn)算的并行化。
其次,格點(diǎn)數(shù)值預(yù)報(bào)解釋應(yīng)用的過(guò)程中,首先還是鄉(xiāng)鎮(zhèn)站點(diǎn)的單站點(diǎn)解釋應(yīng)用,而廣東省共有1 500多個(gè)行政鄉(xiāng)鎮(zhèn),因此對(duì)應(yīng)了1 500個(gè)方程建模,而建模過(guò)程對(duì)每個(gè)站點(diǎn)而言,回歸算法的應(yīng)用是獨(dú)立的,因此,可以隨機(jī)分配給若干的計(jì)算節(jié)點(diǎn)進(jìn)行處理[5]。
基于數(shù)據(jù)分割的并行化處理需要重點(diǎn)解決的關(guān)鍵問(wèn)題為:
(1)合理確定多元回歸和卡爾曼濾波等算法的MapReduce中的Map和Reduce策略。
(2)Map階段的數(shù)據(jù)本地化的考慮和數(shù)據(jù)流轉(zhuǎn)策略。
(3)Reduce階段算法結(jié)果數(shù)據(jù)拷貝和數(shù)據(jù)結(jié)果的獲取。
1.2 算法的MapReduce實(shí)現(xiàn)
基于數(shù)據(jù)分割的并行化計(jì)算框架如圖1所示。
系統(tǒng)將輸入數(shù)據(jù)和輸出結(jié)果統(tǒng)一成JSON格式,所有的輸入站點(diǎn)可以存儲(chǔ)在一個(gè)文件,也可以分多個(gè)文件存儲(chǔ),在Map算法中會(huì)將每一個(gè)站點(diǎn)ID作為map key處理。由于此過(guò)程無(wú)需reduce處理,所以map之后數(shù)據(jù)會(huì)直接生成<key,value>數(shù)據(jù)保存在給定的輸出目錄中,一般輸出文件數(shù)目與map個(gè)數(shù)一致。在map函數(shù)中,算法會(huì)根據(jù)輸入?yún)?shù)類型確定是運(yùn)行Kalman濾波器算法還是多元逐步回歸算法。
平臺(tái)主要通過(guò)Web Service模塊向用戶提供分布式計(jì)算服務(wù)??紤]到應(yīng)用實(shí)際,系統(tǒng)將數(shù)據(jù)上傳,任務(wù)執(zhí)行與結(jié)果獲取分開(kāi),通過(guò)多站點(diǎn)的觀測(cè)數(shù)據(jù)、數(shù)值預(yù)報(bào)產(chǎn)品要素?cái)?shù)據(jù)以及任務(wù)類型和算法名稱作為輸入啟動(dòng)數(shù)據(jù)上傳模塊,數(shù)據(jù)上傳后存儲(chǔ)在系統(tǒng)集成層中的HDFS中并返回一個(gè)任務(wù)ID,通過(guò)任務(wù)ID啟動(dòng)具體算法的任務(wù)執(zhí)行模塊,算法成功執(zhí)行后返回一個(gè)結(jié)果ID,業(yè)務(wù)用戶通過(guò)算法結(jié)果ID啟動(dòng)任務(wù)結(jié)果獲取模塊獲取具體算法的執(zhí)行結(jié)果。具體流程如圖2所示。
2.1 輸入數(shù)據(jù)上傳服務(wù)設(shè)計(jì)
此模塊設(shè)計(jì)的目的是為了將多站點(diǎn)的輸入數(shù)據(jù)文件上傳至HDFS,同時(shí)也考慮到輸入文件規(guī)模大時(shí)的情況。主要特點(diǎn)如下:
(1)系統(tǒng)采取HTTP PUT模式上傳數(shù)據(jù)文件,此模式在客戶端更容易操作,可以上傳已存在文件,而無(wú)須創(chuàng)建新的文件流。
(2)系統(tǒng)設(shè)計(jì)了兩個(gè)輸入?yún)?shù),算法服務(wù)類型(regression,表示多元逐步回歸服務(wù);Kalman,表示Kalman濾波器算法)與任務(wù)Id(即jobId,與返回參數(shù)相同)。設(shè)計(jì)任務(wù)Id的目的是可以多次上傳同一次任務(wù)所需的輸入數(shù)據(jù),以達(dá)到上傳大規(guī)模輸入數(shù)據(jù)的目的。
2.2 計(jì)算任務(wù)執(zhí)行服務(wù)設(shè)計(jì)
在這一模塊中,主要通過(guò)上傳文件后獲得的任務(wù)Id以及算法輸入?yún)?shù)來(lái)執(zhí)行給定類型的分布式算法任務(wù)。設(shè)計(jì)要點(diǎn)如下[6]:
(1)將常用的各個(gè)站點(diǎn)統(tǒng)一的參數(shù)通過(guò)URL輸入,達(dá)到無(wú)需修改輸入數(shù)據(jù)文件的目的,如在多元逐步回歸算法中,將F檢驗(yàn)參數(shù)通過(guò)URL輸入。
(2)Web服務(wù)通過(guò)執(zhí)行腳本來(lái)運(yùn)行算法任務(wù)。在腳本里通過(guò)ssh到Hadoop平臺(tái)上某一個(gè)節(jié)點(diǎn)來(lái)執(zhí)行算法任務(wù)。將腳本放在tomcat目錄下。
其中,MapReduce任務(wù)jar文件放在指定目錄,輸入?yún)?shù)必須包括算法類型、輸入數(shù)據(jù)路徑以及輸出結(jié)果路徑。
(3)在任務(wù)執(zhí)行完成之后系統(tǒng)沒(méi)有馬上返回結(jié)果,而是將結(jié)果放在HDFS上,通過(guò)下載服務(wù)下載數(shù)據(jù)。同樣系統(tǒng)也可以對(duì)此任務(wù)多次運(yùn)行,也會(huì)得到不同的結(jié)果Id。
(4)結(jié)果Id里包含了算法類型信息,輸出文件路徑信息。
業(yè)務(wù)應(yīng)用測(cè)試包括多元逐步回歸算法和Kalman濾波算法的功能測(cè)試和算法性能測(cè)試兩個(gè)部分。其中,功能測(cè)試主要測(cè)試算法通過(guò)Web提供分布式計(jì)算功能,包括算法數(shù)據(jù)接入模塊、算法執(zhí)行模塊以及算法結(jié)果獲取模塊;算法性能測(cè)試主要測(cè)試算法的分布式執(zhí)行時(shí)間性能[7-9]。
3.1 業(yè)務(wù)應(yīng)用測(cè)試方案設(shè)計(jì)
測(cè)試選取歐洲中心0.25度分辨率的數(shù)值預(yù)報(bào)產(chǎn)品(以下簡(jiǎn)稱EC_FINE)中的2米溫度、海平面氣壓、相對(duì)濕度和850百帕溫度共4個(gè)預(yù)報(bào)要素,實(shí)際觀測(cè)要素?cái)?shù)據(jù)是地面溫度,測(cè)試的時(shí)間范圍是2013年5月至9月。其中,EC_FINE要素預(yù)報(bào)0~24小時(shí)內(nèi)是3小時(shí)間隔的,因此實(shí)際觀測(cè)數(shù)據(jù)也選取24小時(shí)內(nèi)隔3小時(shí)的觀測(cè)數(shù)據(jù),這樣EC_FINE的要素預(yù)報(bào)值和觀測(cè)數(shù)據(jù)值二者之間能夠?qū)崿F(xiàn)一一對(duì)應(yīng)[10-11]。
系統(tǒng)首先將測(cè)試數(shù)據(jù)轉(zhuǎn)換成多元逐步回歸算法輸入數(shù)據(jù),然后進(jìn)行算法效果測(cè)試與單點(diǎn)時(shí)間性能測(cè)試[12],之后將數(shù)據(jù)以及輸出量轉(zhuǎn)換成Kalman濾波算法輸入量,然后進(jìn)行單點(diǎn)測(cè)試[13],最后將多站點(diǎn)數(shù)據(jù)輸入進(jìn)行集群性能測(cè)試。
3.2 業(yè)務(wù)應(yīng)用分析
基于Hadoop技術(shù)在IBM 3650服務(wù)器上構(gòu)建大數(shù)據(jù)的算法應(yīng)用平臺(tái),系統(tǒng)實(shí)現(xiàn)了能自動(dòng)雙向失效切換的HDFS NameNode HA機(jī)制,實(shí)現(xiàn)了平臺(tái)的可靠性、動(dòng)態(tài)可擴(kuò)展以及安全一體化等功能。選取MapReduce 2.0(yarn)實(shí)現(xiàn)MapReduce計(jì)算引擎,并在此基礎(chǔ)上部署了針對(duì)氣象業(yè)務(wù)數(shù)據(jù)應(yīng)用的數(shù)據(jù)接入模塊、算法執(zhí)行模塊和結(jié)果獲取模塊。同時(shí)對(duì)算法性能進(jìn)行了測(cè)試,測(cè)試時(shí)輸入數(shù)據(jù)分別是1 000,3 000,5 000,8 000,10 000個(gè)站點(diǎn)的數(shù)據(jù),分別對(duì)單節(jié)點(diǎn)計(jì)算的算法性能和多計(jì)算節(jié)點(diǎn)并行化執(zhí)行時(shí)的算法性能進(jìn)行測(cè)試。圖3的測(cè)試結(jié)果表明,算法在分布式并行化的執(zhí)行環(huán)境下性能較優(yōu),特別當(dāng)測(cè)試數(shù)據(jù)站點(diǎn)越多時(shí)算法時(shí)間性能改善效果越明顯。
文中基于大數(shù)據(jù)分析技術(shù)實(shí)現(xiàn)了典型氣象算法應(yīng)用平臺(tái),實(shí)現(xiàn)了非結(jié)構(gòu)化大數(shù)據(jù)的分布式存儲(chǔ)和處理,借助OpenCV算法庫(kù),實(shí)現(xiàn)了多元逐步回歸和卡爾曼濾波算法的執(zhí)行模塊,采用MapReduce計(jì)算框架設(shè)計(jì)和實(shí)現(xiàn)了多站點(diǎn)輸入數(shù)據(jù)分割的并行化執(zhí)行模塊??紤]業(yè)務(wù)應(yīng)用的規(guī)范,選取JSON數(shù)據(jù)格式規(guī)范了算法輸入和輸出數(shù)據(jù),設(shè)計(jì)了并行算法的Web服務(wù)流程以及實(shí)現(xiàn)了基于Rest Web Service的算法訪問(wèn)接口,并進(jìn)行了算法功能測(cè)試和算法性能測(cè)試。測(cè)試結(jié)果表明,算法功能滿足數(shù)值預(yù)報(bào)解釋應(yīng)用的業(yè)務(wù)實(shí)際需求,同時(shí)隨著算法輸入數(shù)據(jù)中站點(diǎn)量的線性增加,算法時(shí)間性能曲線突破了傳統(tǒng)計(jì)算方式的近似線性增長(zhǎng),而是平緩增長(zhǎng)并趨于穩(wěn)定。業(yè)務(wù)實(shí)驗(yàn)結(jié)果表明,利用大數(shù)據(jù)相關(guān)技術(shù)對(duì)典型氣象算法進(jìn)行并行化設(shè)計(jì)和實(shí)現(xiàn)能夠取得很好的業(yè)務(wù)效果,是氣象大數(shù)據(jù)技術(shù)應(yīng)用的一個(gè)重要發(fā)展方向。
[1] 李玲娟,張 敏.云計(jì)算環(huán)境下關(guān)聯(lián)規(guī)則挖掘算法的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(2):43-46.
[2] 郭 苑,張順頤,孫雁飛.物聯(lián)網(wǎng)關(guān)鍵技術(shù)及有待解決的問(wèn)題研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(11):180-183.
[3] Kschischang F R,F(xiàn)rey B J,Loeliger Hans-Andrea.Factor graphs and the sum-product algorithm[J].IEEE Transactions on Inform Theory,2001,47(2):498-519.
[4] 陳 康,鄭緯民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009,20(5):1337-1348.
[5] 余楚禮,肖迎元,尹 波.一種基于Hadoop的并行關(guān)聯(lián)規(guī)則算法[J].天津理工大學(xué)學(xué)報(bào),2011,27(1):25-28.
[6] 王 彬,肖文名,李永生,等.華南區(qū)域中心計(jì)算資源管理系統(tǒng)的建立與應(yīng)用[J].氣象,2011,37(6):764-770.
[7] Frey B J,Dueck D.Clustering by passing messages between data points[J].Science,2007,315:972-976.
[8] 王 彬,常 飚,朱 江,等.氣象計(jì)算網(wǎng)格平臺(tái)資源監(jiān)視模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].應(yīng)用氣象學(xué)報(bào),2009,20(5):642-648.
[9] Zhen Bin,Wu Xihong,Liu Zhimin,et al.An enhanced relative spectral processing of speech[J].Chinese Journal of Acoustics,2002,21(1):86-96.
[10]幸莉仙,黃慧連.MapReduce框架下的樸素貝葉斯算法并行化研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(2):108-111.
[11]Halkidi M,Vazirgiannis M,Batistakis Y.Quality scheme assessment in the clustering process[C]//Proc of 4th European conf principles and practice of knowledge discovery in databases.[s.l.]:[s.n.],2000:165-276.
[12]應(yīng) 毅,任 凱,曹 陽(yáng).基于改進(jìn)的MapReduce模型的Web挖掘[J].科學(xué)技術(shù)與工程,2013,13(5):1205-1209.
[13]王 萍,劉 穎,王漢芝,等.基于格點(diǎn)場(chǎng)數(shù)據(jù)的沙塵暴雙預(yù)報(bào)模型[J].天津大學(xué)學(xué)報(bào),2006,39(3):329-333.
Research on Parallelism of Typical Meteorological Algorithm Based on Big Data Technology
LI Yong-sheng1,ZENG Qin1,2,YANG Yu-hong1,CHEN Jin3
(1.Guangdong Meteorological Data Center,Guangzhou 510080,China; 2.Guangzhou Central Observatory,Guangzhou 510080,China; 3.Department of Mathematics,Tongji University,Shanghai 200082,China)
The traditional application of numerical algorithms is widely used in the interpretation application of numerical weather prediction.However with the increasing of the type and amount of algorithm input data,the completion time of it presents exponential growth,which faces the bottleneck in the algorithm completion time performance.In order to break it,an execution module of stepwise multiple regression and Kalman filter algorithm is developed based on the OpenCV library(Open Source Computer Vision Library).A distributed data storage model and parallel data access service are designed based on Hadoop framework,and the parallel strategy is designed based on the Map-Reduce framework,then the parallelism execution module is achieved based on the implement of a multi-site input data partition.The algorithm input and output data format are standardized.A Rest Web Service interface of parallel algorithm is designed.Operational trial in multi-user environment shows that this algorithm can meet the actual requirements of meteorological business greatly.
data analysis technology;parallelism;meteorological numerical algorithm;Web Service
TP312
A
1673-629X(2016)09-0047-03
10.3969/j.issn.1673-629X.2016.09.011
2015-06-10
2015-10-15< class="emphasis_bold">網(wǎng)絡(luò)出版時(shí)間:
時(shí)間:2016-08-23
中國(guó)氣象局氣象關(guān)鍵技術(shù)集成與應(yīng)用項(xiàng)目(CMAGJ2014M40);廣東省氣象局重點(diǎn)項(xiàng)目(2012A01);廣州市科技計(jì)劃項(xiàng)目(2012Y2-00031,2013Y2-00053,2013Y2-00074)
李永生(1980-),男,碩士,工程師,研究方向?yàn)樵朴?jì)算及海量數(shù)據(jù)存儲(chǔ)、氣象大數(shù)據(jù)分析應(yīng)用技術(shù);曾 沁,高級(jí)工程師,研究方向?yàn)榫?xì)化預(yù)報(bào)技術(shù)與應(yīng)用、氣象大數(shù)據(jù)分析應(yīng)用技術(shù)。
http://www.cnki.net/kcms/detail/61.1450.tp.20160823.1112.012.html