樊宇虹,馮永祥,馬志強(qiáng),劉利民,李雷孝
(內(nèi)蒙古工業(yè)大學(xué) 信息工程學(xué)院,內(nèi)蒙古 呼和浩特010080)
氣象觀測數(shù)據(jù)主要采用報文文件或數(shù)據(jù)庫形式進(jìn)行存儲,且正以指數(shù)級增長。其主要用于:①數(shù)據(jù)分析,形成天氣預(yù)報、災(zāi)害預(yù)報,為其它部門提供決策支持;②作為資料進(jìn)行保存,為其它研究提供氣象數(shù)據(jù)支持[1]。
云計(jì)算的分布式存儲和并行化處理都被設(shè)計(jì)用來存儲和處理海量數(shù)據(jù),為大數(shù)據(jù)的存儲和計(jì)算提供了一種解決方案。云計(jì)算理念、方法在氣象部門的適度引入和有效普及應(yīng)用,可能極大地簡化基層氣象單位的業(yè)務(wù)工作環(huán)境,真正實(shí)現(xiàn)資料的優(yōu)化組合和業(yè)務(wù)布局的專業(yè)化,完成氣象部門信息系統(tǒng)架構(gòu)的最優(yōu)化調(diào)整和合理配置[2]。
目前,氣象觀測數(shù)據(jù)存儲和管理面臨的主要問題:
(1)存儲管理。隨著科學(xué)技術(shù)的發(fā)展,人類可以探測到的氣象屬性也在不斷增加,氣象資料數(shù)據(jù)量正在不斷增長,需要?dú)庀髷?shù)據(jù)庫存儲容量和屬性都能動態(tài)擴(kuò)展。
(2)響應(yīng)速度。采集到的氣象數(shù)據(jù)是實(shí)時數(shù)據(jù),應(yīng)實(shí)時保存,其次用戶在海量氣象數(shù)據(jù)中查詢、統(tǒng)計(jì)和讀取氣象資料數(shù)據(jù)時應(yīng)及時響應(yīng)。
(3)數(shù)據(jù)的安全性和穩(wěn)定性。氣象數(shù)據(jù)資料都是寶貴的科研歷史資料,在存儲中要保證數(shù)據(jù)的安全性和穩(wěn)定性,充分利用現(xiàn)有的計(jì)算設(shè)備和資源。
(4)方便使用和維護(hù)。存儲的氣象數(shù)據(jù)是原始資料,通過管理為后續(xù)業(yè)務(wù)處理提供方便。
本文針對上述問題及氣象部門對氣象資料數(shù)據(jù)提出的要求,在ubuntu集群基礎(chǔ)上,采用Hadoop及分布式數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫的結(jié)合,設(shè)計(jì)并實(shí)現(xiàn)了一個私有氣象云存儲系統(tǒng)。
根據(jù)要求可以將模型分為用戶訪問接口層、元數(shù)據(jù)存儲層、實(shí)體數(shù)據(jù)存儲層和關(guān)系數(shù)據(jù)庫4部分[2-5],如圖1所示。
圖1 基于Hadoop的氣象私有云存儲架構(gòu)模型
(1)實(shí)體數(shù)據(jù)存儲層。HDFS 擴(kuò)展性強(qiáng)、可靠性高、成本低并且能夠以較低的成本將海量文件存儲在普通機(jī)器集群上等優(yōu)勢[6-8],但其作為氣象私有云存儲平臺底層分布式文件系統(tǒng),適合處理和存儲大文件,所以使用HBase做數(shù)據(jù)庫,HDFS作為底層數(shù)據(jù)存儲容器,實(shí)現(xiàn)數(shù)據(jù)存儲功能;又HBase不支持類SQL 語句,故使用Hive做數(shù)據(jù)倉庫工具,Hive支持Hsql,可以方便查詢管理操作,及后期開發(fā)中通過API對數(shù)據(jù)庫的操作。
(2)元數(shù)據(jù)存儲層。元數(shù)據(jù)存儲層主要實(shí)現(xiàn)氣象數(shù)據(jù)HBase數(shù)據(jù)庫表和Oracle數(shù)據(jù)庫表的屬性存儲,通過對元數(shù)據(jù)庫表的管理來實(shí)現(xiàn)氣象數(shù)據(jù)庫表屬性的映射管理。元數(shù)據(jù)庫表存儲在HBase中。
(3)關(guān)系數(shù)據(jù)庫層。選用Oracle關(guān)系數(shù)據(jù)庫做實(shí)時數(shù)據(jù)存儲和云存儲平臺用戶數(shù)據(jù)存儲和管理。HDFS的缺點(diǎn)是響應(yīng)時間較長,氣象數(shù)據(jù)具有實(shí)時性,每個時間點(diǎn)的數(shù)據(jù)量較小,若小數(shù)據(jù)逐一插入效率較差,故先存入插入數(shù)據(jù)響應(yīng)較快速的關(guān)系數(shù)據(jù)庫中。選用Sqoop做數(shù)據(jù)傳輸和遷移,將關(guān)系數(shù)據(jù)庫中氣象數(shù)據(jù)定期遷移到HBase中,這樣可以很好的提高存儲效率。
(4)訪問接口層。對外提供了HTTP 支持WEB 業(yè)務(wù)的訪問和API接口提供其它氣象云應(yīng)用業(yè)務(wù)開發(fā)。
根據(jù)以上分析,平臺整體功能結(jié)構(gòu)可以設(shè)計(jì)為數(shù)據(jù)采集模塊、結(jié)果顯示模塊、查詢分析模塊、存儲模塊、數(shù)據(jù)遷移5部分[8-10]。如圖2所示。
圖2 云存儲方案整體結(jié)構(gòu)
(1)數(shù)據(jù)采集模塊。提供可視化的數(shù)據(jù)輸入和數(shù)據(jù)輸入API,可以手動發(fā)布?xì)庀髷?shù)據(jù)和接入氣象數(shù)據(jù)采集設(shè)備獲取數(shù)據(jù),將接收到的數(shù)據(jù)存入Oracle數(shù)據(jù)庫。
(2)存儲模塊。負(fù)責(zé)元數(shù)據(jù)和實(shí)體數(shù)據(jù)的存儲,并提供數(shù)據(jù)的備份。HBase和HDFS負(fù)責(zé)元數(shù)據(jù)和實(shí)體數(shù)據(jù)的存儲。HDFS的數(shù)據(jù)存儲不受數(shù)據(jù)類型的限制,可以是任何類型的數(shù)據(jù)。
(3)查詢分析模塊。主要工具為數(shù)據(jù)倉庫工具Hive,支持類HSQL語句,便于查詢,并提供對外的數(shù)據(jù)查詢管理API。
(4)結(jié)果顯示模塊。提供可視化的查詢結(jié)果顯示、分布式文件系統(tǒng)的結(jié)構(gòu)顯示等功能。
(5)數(shù)據(jù)遷移模塊。該模塊使用Sqoop將Oracle中的數(shù)據(jù)轉(zhuǎn)移到HBase中,自動定時執(zhí)行。
平臺數(shù)據(jù)模型包括氣象數(shù)據(jù)模型和元數(shù)據(jù)模型,具體為氣象HBase數(shù)據(jù)庫表和元數(shù)據(jù)庫表。HBase表中的列簇可以包 含多個或一 個列[11-13]。
氣象HBase數(shù)據(jù)庫見表1。
氣象用戶查詢統(tǒng)計(jì)一般都由時間和站點(diǎn)為條件查詢,站點(diǎn)和時間的組合型為唯一值,故將其作為Row key便于查詢,當(dāng)Hive和HBase整合后,查詢時間較單一的Hive查詢或者HBase查詢時間長很多,但將attribute做為Row key查詢時間會明顯變短[13]。
元數(shù)據(jù)庫表見表2。
表1 氣象HBase數(shù)據(jù)庫
表2 元數(shù)據(jù)庫
元數(shù)據(jù)庫表主要實(shí)現(xiàn)氣象數(shù)據(jù)HBase數(shù)據(jù)庫表和Oracle數(shù)據(jù)庫表屬性的管理,通過對元數(shù)據(jù)庫表的操作實(shí)現(xiàn)對應(yīng)氣象數(shù)據(jù)庫表屬性的映射管理。
2.1.1 關(guān)系數(shù)據(jù)庫氣象數(shù)據(jù)信息表
本文實(shí)驗(yàn)采用的數(shù)據(jù)為地面氣象資料,其中包括站點(diǎn)、日期、日平均溫度、日平均濕度、日平均水汽壓、日大氣壓、日最高氣溫和日最低氣溫8個屬性,見表3。其中將站點(diǎn)和日期合并為attribute,具有唯一性,設(shè)計(jì)為主鍵。
表3 氣象數(shù)據(jù)信息
2.1.2 HBase數(shù)據(jù)庫表
如表4所示,其中AT 為avg _temperature (平均氣溫),MAXT 為max_temperature (最大氣溫),MINT 為min_temperature (最小氣溫),AVP 為avg_water_vapor_pressure (平均水汽壓),AP為atmospheric_pressure(氣壓),AH 為avg_h(yuǎn)umity(平均濕度)。
表4 HBase數(shù)據(jù)庫
attribute作為數(shù)據(jù)庫表的Row key;Timestamp 為時間戳,其類型為64 位整型,此處時間戳由寫入HBase 時HBase自動賦值,是可精確到毫秒的當(dāng)前系統(tǒng)時間。temperature、pressure、humity 為3個列簇。每個列簇下又包括幾 列,temperature 包 括AT、MAXT、MINT 三 列。pressure包括AVP、AP 兩列。humity 只包括AH 一列。
2.2.1 云存儲平臺實(shí)驗(yàn)結(jié)果分析
為了驗(yàn)證上面的結(jié)果,使用4臺PC機(jī)搭建了環(huán)境,系統(tǒng)配置見表5、表6。各臺PC 機(jī)之間用百兆以太網(wǎng)卡,通過交換機(jī)連接。PC1 運(yùn)行master即NameNode、Hmaster,PC2、PC3 運(yùn) 行DataNode1 和DataNode2,HRegionServer1,HRegionServer2,PC4運(yùn)行云存儲服務(wù)系統(tǒng),包括關(guān)系數(shù)據(jù)庫和服務(wù)器。
表5 硬件參數(shù)信息
表6 軟件參數(shù)信息
實(shí)驗(yàn)所使用的數(shù)據(jù)為地面195 個站點(diǎn)從1951 到2011年所采集的氣象數(shù)據(jù),實(shí)驗(yàn)中截取了1.3G,2.5G,5G,8G,10G,13G,25G 等7個大小不同的數(shù)據(jù)集。
評價指標(biāo)選用系統(tǒng)響應(yīng)時間,是指從客戶端向存儲模型發(fā)出查詢和下載數(shù)據(jù)集命令開始,存儲模型進(jìn)行數(shù)據(jù)操作,將結(jié)果反饋給客戶的整個時間,單位為秒。設(shè)計(jì)了4種實(shí)驗(yàn)方案,分別是:①查詢1條數(shù)據(jù);②查詢1 000 000條數(shù)據(jù);③查詢統(tǒng)計(jì)1 000 000條數(shù)據(jù);④查詢下載1 000 000條數(shù)據(jù)。
由圖3 (a)和圖3 (b)可以看出,在進(jìn)行數(shù)據(jù)查詢時,當(dāng)數(shù)據(jù)集大于5G 時,系統(tǒng)響應(yīng)時間明顯下降;由圖3 (c)可以看出,在進(jìn)行數(shù)據(jù)查詢統(tǒng)計(jì)時,當(dāng)數(shù)據(jù)集大于8G 時,系統(tǒng)響應(yīng)時間增幅明顯減少;由圖3 (d)可以看出,在進(jìn)行查詢下載時,當(dāng)數(shù)據(jù)集大于8G時,系統(tǒng)響應(yīng)時間明顯減少。由此可以得出結(jié)論,系統(tǒng)在處理大數(shù)據(jù)集時優(yōu)勢明顯。
圖3 實(shí)驗(yàn)結(jié)果
2.2.2 ARIMA 算法預(yù)測結(jié)果分析
(1)數(shù)據(jù)序列建模
課題選用內(nèi)蒙古氣象局某站點(diǎn)過去10年的日平均水氣壓和日平均相對濕度數(shù)據(jù)進(jìn)行預(yù)測實(shí)驗(yàn),預(yù)測未來15天的數(shù)據(jù),根據(jù)課題選用的ARIMA 算法進(jìn)行預(yù)測。過程如下:
1)數(shù)據(jù)預(yù)處理。數(shù)據(jù)中有 “32766”類數(shù)據(jù),將該類數(shù)據(jù)用前一天與后一天的平均值代替。
2)進(jìn)行零變換處理,形成新序列。
3)進(jìn)行平穩(wěn)性檢驗(yàn),經(jīng)MATLAB 的相關(guān)函數(shù) [H,PValue,TestStat,CriticalValue]=dfARDTest(zero)檢驗(yàn),H 返回值不為零時,為不平穩(wěn)序列;H 返回值為零時,為平穩(wěn)序列,無需進(jìn)行差分處理。
4)分別計(jì)算序列自相關(guān)系數(shù)和偏自相關(guān)系數(shù),根據(jù)其進(jìn)行模型選擇和初步定階。
5)經(jīng)AIC準(zhǔn)則定階,確定最終模型,日平均水氣壓序列的模型為ARMA (2,2),日平均相對濕度序列的模型為ARMA (4,3)。
6)參數(shù)估計(jì),即計(jì)算yt=1yt-1+…+pyt-p+εtθ1εt-1-θqεt-q中1…p 和θ1…θq。
(2)預(yù)測結(jié)果
經(jīng)以上步驟,日平均水汽壓的最終模型為ARIMA (2,1,2),日平均相對濕度的最終模型為ARIMA (4,0,3),利用這2個模型對未來15天的日平均水汽壓和日平均相對濕度進(jìn)行了預(yù)測,其預(yù)測結(jié)果與真實(shí)數(shù)據(jù)的對比如圖4和圖5所示。
圖4 平均水汽壓預(yù)測值與真實(shí)值對比
圖5 平均相對濕度預(yù)測值與真實(shí)值對比
(3)結(jié)果分析
從直觀分析兩個序列隨著預(yù)測步長的增加,預(yù)測效果越來越差。經(jīng)課題選用評價指標(biāo)進(jìn)行精確分析,其結(jié)果見表7和表8。
表7 日平均水汽壓誤差
表8 日平均相對濕度誤差
由MAE列和MAPE 列知,隨著預(yù)測步長的增加,日平均水汽壓預(yù)測誤差和日平均相對濕度預(yù)測誤差基本成越來越大的增長趨勢,說明該算法和模型在多步預(yù)測上存在一定缺陷,需要做進(jìn)一步改進(jìn)。
本文對基于氣象應(yīng)用的私有云存儲進(jìn)行了設(shè)計(jì)和開發(fā),以Hadoop分布式框架為基礎(chǔ),在分布式文件系統(tǒng)HDFS的基礎(chǔ)上結(jié)合分布式數(shù)據(jù)庫HBase、數(shù)據(jù)倉庫管理工具Hive、分布式數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫數(shù)據(jù)遷移工具Sqoop等工具在普通廉價的計(jì)算機(jī)集群上搭建和開發(fā)了該私有云存儲平臺,實(shí)現(xiàn)了氣象數(shù)據(jù)海量存儲、快速插入和高效查詢下載以及被探測氣象屬性管理等功能。經(jīng)平臺實(shí)驗(yàn)表明,該平臺具有良好的易擴(kuò)展性、易維護(hù)性和對海量氣象數(shù)據(jù)的高效數(shù)據(jù)管理特性。
目前該氣象私有云存儲平臺基本完成預(yù)期目標(biāo)但是比較粗糙并且仍在研究中,可以在此基礎(chǔ)上繼續(xù)完善,目前存儲的氣象數(shù)據(jù)還未包括氣象云圖、衛(wèi)星云圖等的非結(jié)構(gòu)數(shù)據(jù),并且氣象數(shù)據(jù)十分寶貴,它的安全性十分重要,系統(tǒng)還需在其安全性等方面進(jìn)行研究。
[1]DOU Yiwen,LU Li,LIU Xulin,et al.Meteorological data storage and management system [J].Computer Systems&Applications,2011,20 (7):116-120 (in Chinese). [竇以文,盧俐,劉旭林,等.氣象數(shù)據(jù)存貯管理系統(tǒng) [J].計(jì)算機(jī)系統(tǒng)
應(yīng)用,2011,20 (7):116-120.]
[2]SHEN Wenhai.The future trend of information from cloud computing meteorological department[J].Advances in Meteorological Science and Technology,2012 (2):4-9(in Chinese).[沈文海.從云計(jì)算看氣象部門未來的信息化趨勢 [J].氣象科技進(jìn)展,2012 (2):4-9.]
[3]CUI Jie,LI Taoshen,LAN Hongxing.Design and development of the mass data storage platform based on Hadoop [J].Journal of Computer Research and Development,2012 (S1):12-18 (in Chinese). [崔杰,李陶深,蘭紅星.基于Hadoop的海量數(shù)據(jù)存儲平臺設(shè)計(jì)與開發(fā) [J].計(jì)算機(jī)研究與發(fā)展,2012 (S1):12-18.]
[4]ZHOU Ke,WANG Hua,LI Chunhua.Cloud storage technology and its application [J].ZTE Communications,2010,16(4):24-27 (in Chinese). [周可,王樺,李春花.云存儲技術(shù)及其應(yīng)用 [J].中興通訊術(shù),2010,16 (4):24-27.]
[5]Frank Doelitzscher,Anthony Sulistio,Christoph Reich,et al.Private cloud for collaboration and e-learning services:From IaaS to SaaS [J].Computing,2011,91 (1):23-42.
[6]Chang F,Dean J,Ghemawat S,et al.Bigtable:A distributed storage system for structured data [C]//Proc of the 7th USENIX Symp on Operating Systems Design and Implementation,2006:205-218.
[7]ZHANG Chunming,RUI Jianwu,HE Tingting.An approach for storing and accessing small files on Hadoop [J].Computer Applications and Software,2012,29 (11):95-100 (in Chinese).[張春明,芮建武,何婷婷.一種Hadoop小文件存儲和讀取的方法 [J].計(jì)算機(jī)應(yīng)用與軟件,2012,29 (11):95-100.]
[8]ZHANG Jianxun,GU Zhimin,ZHENG Chao.Survey of research progress on cloud computing [J].Application Research of Computers,2010,27 (2):429-433 (in Chinese). [張建勛,古志民,鄭超.云計(jì)算研究進(jìn)展綜述 [J].計(jì)算機(jī)應(yīng)用研究,2010,27 (2):429-433.]
[9]YANG Zhihao,ZHAO Taiyin,YAO Xingmiao,et al.Private cloud computing system realization method adaptable to data and computing intensive tasks [J].Application Research of Computers,2011,28 (2):621-624 (in Chinese). [楊志豪,趙太銀,姚興苗,等.一種適應(yīng)數(shù)據(jù)與計(jì)算密集型任務(wù)的私有云系統(tǒng) 實(shí) 現(xiàn) 研 究 [J].計(jì) 算 機(jī) 應(yīng) 用 研 究,2011,28 (2):621-624.]
[10]ZHANG Di,ZHU Ligu,HOU Zhenyu,et al.Research of cloud storage technology for mobile terminal based on web[J].Computer Engineering and Applications,2010,46(36):66-69 (in Chinese).[張迪,朱立谷,侯振宇,等.基于Web的移動端云存儲技術(shù)研究 [J].計(jì)算機(jī)工程與應(yīng)用,2010,46 (36):66-69.]
[11]LIU Jinzhi,YU Dan,ZHU Shuaishuai.Research on new cloud storage service model [J].Application Research of Computers,2011,28 (5):1869-1872 (in Chinese).[劉金芝,余丹,朱率率.一種新的云存儲服務(wù)模型研究 [J].計(jì)算機(jī)應(yīng)用研究,2011,28 (5):1869-1872.]
[12]LI Chao,ZHANG Mingbo,XING Chunxiao,et al.Survey and review on key technologies of column oriented database systems[J].Computer Science,2010,37 (12):1-8 (in Chinese).[李超,張明博,邢春曉,等.列存儲數(shù)據(jù)庫關(guān)鍵技術(shù)綜述 [J].計(jì)算機(jī)科學(xué).2010,37 (12):1-8.]
[13]Abadi D J.Query execution in column oriented database systems[C]//SIGMOD,2008:145-148.
[14]CHEN Kang,ZHENG Weimin.Cloud computing:System instances and current research[J].Journal of Software,2009,20(5):1337-1348(in Chinese).[陳康,鄭偉民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報,2009,20 (5):1337-1348.]