李永生,曾 沁,2,楊玉紅,陳 晉
(1.廣東省氣象探測數(shù)據(jù)中心,廣東廣州 510080; 2.廣東省氣象臺(tái),廣東廣州 510080; 3.同濟(jì)大學(xué)數(shù)學(xué)系,上海 200082)
基于大數(shù)據(jù)技術(shù)的氣象算法并行化研究
李永生1,曾 沁1,2,楊玉紅1,陳 晉3
(1.廣東省氣象探測數(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ù)據(jù)種類和數(shù)據(jù)量的增加導(dǎo)致算法的完成時(shí)間大幅增長,甚至出現(xiàn)了算法完成時(shí)間性能瓶頸。為了突破算法時(shí)間上的性能瓶頸,基于OpenCV算法庫,實(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的算法訪問接口。業(yè)務(wù)應(yīng)用實(shí)驗(yàn)測試表明,并行算法能夠很好地滿足氣象業(yè)務(wù)實(shí)際需求。
大數(shù)據(jù)分析技術(shù);并行化;氣象數(shù)值算法;Web服務(wù)
在氣象預(yù)報(bào)領(lǐng)域?qū)⒍嘣鸩交貧w、卡爾曼濾波等數(shù)值算法引入到對數(shù)值預(yù)報(bào)解釋中已得到廣泛的應(yīng)用,這是對數(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í)踐證明:通過數(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)用,但這些研究對算法性能和算法的并行化設(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ì)算瓶頸問題是氣象預(yù)報(bào)業(yè)務(wù)迫切需要解決的。目前大數(shù)據(jù)處理技術(shù)的逐漸成熟為這一問題的解決提供了契機(jī)。
算法平臺(tái)實(shí)現(xiàn)了多元逐步回歸和卡爾曼濾波算法,基于跨平臺(tái)的通用算法庫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ì),對算法本身的原理和算法在數(shù)值預(yù)報(bào)解釋應(yīng)用中的參數(shù)選擇等不做詳細(xì)的描述和說明[1]。
1.1 算法并行化策略
針對數(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)用過程的統(tǒng)計(jì)中間量,可以根據(jù)時(shí)間長度和計(jì)算節(jié)點(diǎn)數(shù)目進(jìn)行適當(dāng)分割,從而分解到各個(gè)計(jì)算節(jié)點(diǎn)(這是Map函數(shù)過程),并行計(jì)算后,對各個(gè)時(shí)間段的統(tǒng)計(jì)量[4]在Reduce函數(shù)過程中進(jìn)行匯總分析,從而得到全時(shí)段的計(jì)算統(tǒng)計(jì)量,實(shí)現(xiàn)算法運(yùn)算的并行化。
其次,格點(diǎn)數(shù)值預(yù)報(bào)解釋應(yīng)用的過程中,首先還是鄉(xiāng)鎮(zhèn)站點(diǎn)的單站點(diǎn)解釋應(yīng)用,而廣東省共有1 500多個(gè)行政鄉(xiāng)鎮(zhèn),因此對應(yīng)了1 500個(gè)方程建模,而建模過程對每個(gè)站點(diǎn)而言,回歸算法的應(yīng)用是獨(dú)立的,因此,可以隨機(jī)分配給若干的計(jì)算節(jié)點(diǎn)進(jìn)行處理[5]。
基于數(shù)據(jù)分割的并行化處理需要重點(diǎn)解決的關(guā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處理。由于此過程無需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)主要通過Web Service模塊向用戶提供分布式計(jì)算服務(wù)。考慮到應(yīng)用實(shí)際,系統(tǒng)將數(shù)據(jù)上傳,任務(wù)執(zhí)行與結(jié)果獲取分開,通過多站點(diǎn)的觀測數(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,通過任務(wù)ID啟動(dòng)具體算法的任務(wù)執(zhí)行模塊,算法成功執(zhí)行后返回一個(gè)結(jié)果ID,業(yè)務(wù)用戶通過算法結(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ù)文件,此模式在客戶端更容易操作,可以上傳已存在文件,而無須創(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ì)
在這一模塊中,主要通過上傳文件后獲得的任務(wù)Id以及算法輸入?yún)?shù)來執(zhí)行給定類型的分布式算法任務(wù)。設(shè)計(jì)要點(diǎn)如下[6]:
(1)將常用的各個(gè)站點(diǎn)統(tǒng)一的參數(shù)通過URL輸入,達(dá)到無需修改輸入數(shù)據(jù)文件的目的,如在多元逐步回歸算法中,將F檢驗(yàn)參數(shù)通過URL輸入。
(2)Web服務(wù)通過執(zhí)行腳本來運(yùn)行算法任務(wù)。在腳本里通過ssh到Hadoop平臺(tái)上某一個(gè)節(jié)點(diǎn)來執(zhí)行算法任務(wù)。將腳本放在tomcat目錄下。
其中,MapReduce任務(wù)jar文件放在指定目錄,輸入?yún)?shù)必須包括算法類型、輸入數(shù)據(jù)路徑以及輸出結(jié)果路徑。
(3)在任務(wù)執(zhí)行完成之后系統(tǒng)沒有馬上返回結(jié)果,而是將結(jié)果放在HDFS上,通過下載服務(wù)下載數(shù)據(jù)。同樣系統(tǒng)也可以對此任務(wù)多次運(yùn)行,也會(huì)得到不同的結(jié)果Id。
(4)結(jié)果Id里包含了算法類型信息,輸出文件路徑信息。
業(yè)務(wù)應(yīng)用測試包括多元逐步回歸算法和Kalman濾波算法的功能測試和算法性能測試兩個(gè)部分。其中,功能測試主要測試算法通過Web提供分布式計(jì)算功能,包括算法數(shù)據(jù)接入模塊、算法執(zhí)行模塊以及算法結(jié)果獲取模塊;算法性能測試主要測試算法的分布式執(zhí)行時(shí)間性能[7-9]。
3.1 業(yè)務(wù)應(yīng)用測試方案設(shè)計(jì)
測試選取歐洲中心0.25度分辨率的數(shù)值預(yù)報(bào)產(chǎn)品(以下簡稱EC_FINE)中的2米溫度、海平面氣壓、相對濕度和850百帕溫度共4個(gè)預(yù)報(bào)要素,實(shí)際觀測要素?cái)?shù)據(jù)是地面溫度,測試的時(shí)間范圍是2013年5月至9月。其中,EC_FINE要素預(yù)報(bào)0~24小時(shí)內(nèi)是3小時(shí)間隔的,因此實(shí)際觀測數(shù)據(jù)也選取24小時(shí)內(nèi)隔3小時(shí)的觀測數(shù)據(jù),這樣EC_FINE的要素預(yù)報(bào)值和觀測數(shù)據(jù)值二者之間能夠?qū)崿F(xiàn)一一對應(yīng)[10-11]。
系統(tǒng)首先將測試數(shù)據(jù)轉(zhuǎn)換成多元逐步回歸算法輸入數(shù)據(jù),然后進(jìn)行算法效果測試與單點(diǎn)時(shí)間性能測試[12],之后將數(shù)據(jù)以及輸出量轉(zhuǎn)換成Kalman濾波算法輸入量,然后進(jìn)行單點(diǎn)測試[13],最后將多站點(diǎn)數(shù)據(jù)輸入進(jìn)行集群性能測試。
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ǔ)上部署了針對氣象業(yè)務(wù)數(shù)據(jù)應(yīng)用的數(shù)據(jù)接入模塊、算法執(zhí)行模塊和結(jié)果獲取模塊。同時(shí)對算法性能進(jìn)行了測試,測試時(shí)輸入數(shù)據(jù)分別是1 000,3 000,5 000,8 000,10 000個(gè)站點(diǎn)的數(shù)據(jù),分別對單節(jié)點(diǎn)計(jì)算的算法性能和多計(jì)算節(jié)點(diǎn)并行化執(zhí)行時(shí)的算法性能進(jìn)行測試。圖3的測試結(jié)果表明,算法在分布式并行化的執(zhí)行環(huán)境下性能較優(yōu),特別當(dāng)測試數(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算法庫,實(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的算法訪問接口,并進(jìn)行了算法功能測試和算法性能測試。測試結(jié)果表明,算法功能滿足數(shù)值預(yù)報(bào)解釋應(yīng)用的業(yè)務(wù)實(shí)際需求,同時(shí)隨著算法輸入數(shù)據(jù)中站點(diǎn)量的線性增加,算法時(shí)間性能曲線突破了傳統(tǒng)計(jì)算方式的近似線性增長,而是平緩增長并趨于穩(wěn)定。業(yè)務(wù)實(shí)驗(yàn)結(jié)果表明,利用大數(shù)據(jù)相關(guān)技術(shù)對典型氣象算法進(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ù)及有待解決的問題研究[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) 毅,任 凱,曹 陽.基于改進(jìn)的MapReduce模型的Web挖掘[J].科學(xué)技術(shù)與工程,2013,13(5):1205-1209.
[13]王 萍,劉 穎,王漢芝,等.基于格點(diǎn)場數(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ā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