李永生,曾 沁,2,楊玉紅,陳 晉
(1.廣東省氣象探測數據中心,廣東廣州 510080; 2.廣東省氣象臺,廣東廣州 510080; 3.同濟大學數學系,上海 200082)
基于大數據技術的氣象算法并行化研究
李永生1,曾 沁1,2,楊玉紅1,陳 晉3
(1.廣東省氣象探測數據中心,廣東廣州 510080; 2.廣東省氣象臺,廣東廣州 510080; 3.同濟大學數學系,上海 200082)
在氣象數值預報解釋應用業務中,傳統數值算法的應用呈現逐步增加的趨勢,但是隨著算法輸入數據種類和數據量的增加導致算法的完成時間大幅增長,甚至出現了算法完成時間性能瓶頸。為了突破算法時間上的性能瓶頸,基于OpenCV算法庫,實現了多元逐步回歸和卡爾曼濾波算法的執行模塊,采用Map-Reduce計算框架設計和實現了多站點輸入數據分割的并行化執行模塊;規范了算法輸入和輸出的數據格式,設計了并行算法的Web服務流程以及實現了基于Rest Web Service的算法訪問接口。業務應用實驗測試表明,并行算法能夠很好地滿足氣象業務實際需求。
大數據分析技術;并行化;氣象數值算法;Web服務
在氣象預報領域將多元逐步回歸、卡爾曼濾波等數值算法引入到對數值預報解釋中已得到廣泛的應用,這是對數值預報這一綜合性的結果運用動力學、統計學技術再一次進行加工、修正,使預報精度得到進一步提高,以達到有價值的要素預報水平。實踐證明:通過數值預報的解釋應用,確實可以使要素預報比客觀數值預報模式直接輸出的預報有明顯提高[1]。陸如華等從氣象應用角度介紹了卡爾曼濾波的基本原理及其遞推算法[2];相關研究也進一步表明,數值預報解釋應用算法在數值預報業務中得到了廣泛應用,但這些研究對算法性能和算法的并行化設計和實現涉及較少,隨著應用的逐步深入以及數值預報解釋應用算法輸入數據的逐步增加,出現了一定的計算瓶頸。因此如何解決數值算法在數值預報解釋應用中的計算瓶頸問題是氣象預報業務迫切需要解決的。目前大數據處理技術的逐漸成熟為這一問題的解決提供了契機。
算法平臺實現了多元逐步回歸和卡爾曼濾波算法,基于跨平臺的通用算法庫OpenCV(Open Source Computer Vision Library)實現了多元逐步回歸和卡爾曼濾波兩種數值算法的執行模塊。文中重點討論基于大數據分析技術的算法并行化設計實現和算法應用設計,對算法本身的原理和算法在數值預報解釋應用中的參數選擇等不做詳細的描述和說明[1]。
1.1 算法并行化策略
針對數值算法在數值預報解釋應用中的并行化可以從基于算法本身的并行化處理方案和基于數據分割的并行化處理方案兩方面著手。算法本身的并行化需要強大的硬件資源支持,需要一定規模的資金投入,在應用方面受到一定的限制[3],因此設計主要采取基于數據分割的并行化處理方案,這也是MapReduce編程模型的典型應用。
首先,數值預報解釋應用中的數據大都涉及多年資料的統計分析和回歸算法應用,而算法應用過程的統計中間量,可以根據時間長度和計算節點數目進行適當分割,從而分解到各個計算節點(這是Map函數過程),并行計算后,對各個時間段的統計量[4]在Reduce函數過程中進行匯總分析,從而得到全時段的計算統計量,實現算法運算的并行化。
其次,格點數值預報解釋應用的過程中,首先還是鄉鎮站點的單站點解釋應用,而廣東省共有1 500多個行政鄉鎮,因此對應了1 500個方程建模,而建模過程對每個站點而言,回歸算法的應用是獨立的,因此,可以隨機分配給若干的計算節點進行處理[5]。
基于數據分割的并行化處理需要重點解決的關鍵問題為:
(1)合理確定多元回歸和卡爾曼濾波等算法的MapReduce中的Map和Reduce策略。
(2)Map階段的數據本地化的考慮和數據流轉策略。
(3)Reduce階段算法結果數據拷貝和數據結果的獲取。
1.2 算法的MapReduce實現
基于數據分割的并行化計算框架如圖1所示。
系統將輸入數據和輸出結果統一成JSON格式,所有的輸入站點可以存儲在一個文件,也可以分多個文件存儲,在Map算法中會將每一個站點ID作為map key處理。由于此過程無需reduce處理,所以map之后數據會直接生成<key,value>數據保存在給定的輸出目錄中,一般輸出文件數目與map個數一致。在map函數中,算法會根據輸入參數類型確定是運行Kalman濾波器算法還是多元逐步回歸算法。
平臺主要通過Web Service模塊向用戶提供分布式計算服務。考慮到應用實際,系統將數據上傳,任務執行與結果獲取分開,通過多站點的觀測數據、數值預報產品要素數據以及任務類型和算法名稱作為輸入啟動數據上傳模塊,數據上傳后存儲在系統集成層中的HDFS中并返回一個任務ID,通過任務ID啟動具體算法的任務執行模塊,算法成功執行后返回一個結果ID,業務用戶通過算法結果ID啟動任務結果獲取模塊獲取具體算法的執行結果。具體流程如圖2所示。
2.1 輸入數據上傳服務設計
此模塊設計的目的是為了將多站點的輸入數據文件上傳至HDFS,同時也考慮到輸入文件規模大時的情況。主要特點如下:
(1)系統采取HTTP PUT模式上傳數據文件,此模式在客戶端更容易操作,可以上傳已存在文件,而無須創建新的文件流。
(2)系統設計了兩個輸入參數,算法服務類型(regression,表示多元逐步回歸服務;Kalman,表示Kalman濾波器算法)與任務Id(即jobId,與返回參數相同)。設計任務Id的目的是可以多次上傳同一次任務所需的輸入數據,以達到上傳大規模輸入數據的目的。
2.2 計算任務執行服務設計
在這一模塊中,主要通過上傳文件后獲得的任務Id以及算法輸入參數來執行給定類型的分布式算法任務。設計要點如下[6]:
(1)將常用的各個站點統一的參數通過URL輸入,達到無需修改輸入數據文件的目的,如在多元逐步回歸算法中,將F檢驗參數通過URL輸入。
(2)Web服務通過執行腳本來運行算法任務。在腳本里通過ssh到Hadoop平臺上某一個節點來執行算法任務。將腳本放在tomcat目錄下。
其中,MapReduce任務jar文件放在指定目錄,輸入參數必須包括算法類型、輸入數據路徑以及輸出結果路徑。
(3)在任務執行完成之后系統沒有馬上返回結果,而是將結果放在HDFS上,通過下載服務下載數據。同樣系統也可以對此任務多次運行,也會得到不同的結果Id。
(4)結果Id里包含了算法類型信息,輸出文件路徑信息。
業務應用測試包括多元逐步回歸算法和Kalman濾波算法的功能測試和算法性能測試兩個部分。其中,功能測試主要測試算法通過Web提供分布式計算功能,包括算法數據接入模塊、算法執行模塊以及算法結果獲取模塊;算法性能測試主要測試算法的分布式執行時間性能[7-9]。
3.1 業務應用測試方案設計
測試選取歐洲中心0.25度分辨率的數值預報產品(以下簡稱EC_FINE)中的2米溫度、海平面氣壓、相對濕度和850百帕溫度共4個預報要素,實際觀測要素數據是地面溫度,測試的時間范圍是2013年5月至9月。其中,EC_FINE要素預報0~24小時內是3小時間隔的,因此實際觀測數據也選取24小時內隔3小時的觀測數據,這樣EC_FINE的要素預報值和觀測數據值二者之間能夠實現一一對應[10-11]。
系統首先將測試數據轉換成多元逐步回歸算法輸入數據,然后進行算法效果測試與單點時間性能測試[12],之后將數據以及輸出量轉換成Kalman濾波算法輸入量,然后進行單點測試[13],最后將多站點數據輸入進行集群性能測試。
3.2 業務應用分析
基于Hadoop技術在IBM 3650服務器上構建大數據的算法應用平臺,系統實現了能自動雙向失效切換的HDFS NameNode HA機制,實現了平臺的可靠性、動態可擴展以及安全一體化等功能。選取MapReduce 2.0(yarn)實現MapReduce計算引擎,并在此基礎上部署了針對氣象業務數據應用的數據接入模塊、算法執行模塊和結果獲取模塊。同時對算法性能進行了測試,測試時輸入數據分別是1 000,3 000,5 000,8 000,10 000個站點的數據,分別對單節點計算的算法性能和多計算節點并行化執行時的算法性能進行測試。圖3的測試結果表明,算法在分布式并行化的執行環境下性能較優,特別當測試數據站點越多時算法時間性能改善效果越明顯。
文中基于大數據分析技術實現了典型氣象算法應用平臺,實現了非結構化大數據的分布式存儲和處理,借助OpenCV算法庫,實現了多元逐步回歸和卡爾曼濾波算法的執行模塊,采用MapReduce計算框架設計和實現了多站點輸入數據分割的并行化執行模塊。考慮業務應用的規范,選取JSON數據格式規范了算法輸入和輸出數據,設計了并行算法的Web服務流程以及實現了基于Rest Web Service的算法訪問接口,并進行了算法功能測試和算法性能測試。測試結果表明,算法功能滿足數值預報解釋應用的業務實際需求,同時隨著算法輸入數據中站點量的線性增加,算法時間性能曲線突破了傳統計算方式的近似線性增長,而是平緩增長并趨于穩定。業務實驗結果表明,利用大數據相關技術對典型氣象算法進行并行化設計和實現能夠取得很好的業務效果,是氣象大數據技術應用的一個重要發展方向。
[1] 李玲娟,張 敏.云計算環境下關聯規則挖掘算法的研究[J].計算機技術與發展,2011,21(2):43-46.
[2] 郭 苑,張順頤,孫雁飛.物聯網關鍵技術及有待解決的問題研究[J].計算機技術與發展,2010,20(11):180-183.
[3] Kschischang F R,Frey 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].軟件學報,2009,20(5):1337-1348.
[5] 余楚禮,肖迎元,尹 波.一種基于Hadoop的并行關聯規則算法[J].天津理工大學學報,2011,27(1):25-28.
[6] 王 彬,肖文名,李永生,等.華南區域中心計算資源管理系統的建立與應用[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].應用氣象學報,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].計算機系統應用,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]應 毅,任 凱,曹 陽.基于改進的MapReduce模型的Web挖掘[J].科學技術與工程,2013,13(5):1205-1209.
[13]王 萍,劉 穎,王漢芝,等.基于格點場數據的沙塵暴雙預報模型[J].天津大學學報,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">網絡出版時間:
時間:2016-08-23
中國氣象局氣象關鍵技術集成與應用項目(CMAGJ2014M40);廣東省氣象局重點項目(2012A01);廣州市科技計劃項目(2012Y2-00031,2013Y2-00053,2013Y2-00074)
李永生(1980-),男,碩士,工程師,研究方向為云計算及海量數據存儲、氣象大數據分析應用技術;曾 沁,高級工程師,研究方向為精細化預報技術與應用、氣象大數據分析應用技術。
http://www.cnki.net/kcms/detail/61.1450.tp.20160823.1112.012.html