樊宇虹,冯永祥,马志强,刘利民,李雷孝
(内蒙古工业大学 信息工程学院,内蒙古 呼和浩特010080)
气象观测数据主要采用报文文件或数据库形式进行存储,且正以指数级增长。其主要用于:①数据分析,形成天气预报、灾害预报,为其它部门提供决策支持;②作为资料进行保存,为其它研究提供气象数据支持[1]。
云计算的分布式存储和并行化处理都被设计用来存储和处理海量数据,为大数据的存储和计算提供了一种解决方案。云计算理念、方法在气象部门的适度引入和有效普及应用,可能极大地简化基层气象单位的业务工作环境,真正实现资料的优化组合和业务布局的专业化,完成气象部门信息系统架构的最优化调整和合理配置[2]。
目前,气象观测数据存储和管理面临的主要问题:
(1)存储管理。随着科学技术的发展,人类可以探测到的气象属性也在不断增加,气象资料数据量正在不断增长,需要气象数据库存储容量和属性都能动态扩展。
(2)响应速度。采集到的气象数据是实时数据,应实时保存,其次用户在海量气象数据中查询、统计和读取气象资料数据时应及时响应。
(3)数据的安全性和稳定性。气象数据资料都是宝贵的科研历史资料,在存储中要保证数据的安全性和稳定性,充分利用现有的计算设备和资源。
(4)方便使用和维护。存储的气象数据是原始资料,通过管理为后续业务处理提供方便。
本文针对上述问题及气象部门对气象资料数据提出的要求,在ubuntu集群基础上,采用Hadoop及分布式数据库与关系数据库的结合,设计并实现了一个私有气象云存储系统。
根据要求可以将模型分为用户访问接口层、元数据存储层、实体数据存储层和关系数据库4部分[2-5],如图1所示。
图1 基于Hadoop的气象私有云存储架构模型
(1)实体数据存储层。HDFS 扩展性强、可靠性高、成本低并且能够以较低的成本将海量文件存储在普通机器集群上等优势[6-8],但其作为气象私有云存储平台底层分布式文件系统,适合处理和存储大文件,所以使用HBase做数据库,HDFS作为底层数据存储容器,实现数据存储功能;又HBase不支持类SQL 语句,故使用Hive做数据仓库工具,Hive支持Hsql,可以方便查询管理操作,及后期开发中通过API对数据库的操作。
(2)元数据存储层。元数据存储层主要实现气象数据HBase数据库表和Oracle数据库表的属性存储,通过对元数据库表的管理来实现气象数据库表属性的映射管理。元数据库表存储在HBase中。
(3)关系数据库层。选用Oracle关系数据库做实时数据存储和云存储平台用户数据存储和管理。HDFS的缺点是响应时间较长,气象数据具有实时性,每个时间点的数据量较小,若小数据逐一插入效率较差,故先存入插入数据响应较快速的关系数据库中。选用Sqoop做数据传输和迁移,将关系数据库中气象数据定期迁移到HBase中,这样可以很好的提高存储效率。
(4)访问接口层。对外提供了HTTP 支持WEB 业务的访问和API接口提供其它气象云应用业务开发。
根据以上分析,平台整体功能结构可以设计为数据采集模块、结果显示模块、查询分析模块、存储模块、数据迁移5部分[8-10]。如图2所示。
图2 云存储方案整体结构
(1)数据采集模块。提供可视化的数据输入和数据输入API,可以手动发布气象数据和接入气象数据采集设备获取数据,将接收到的数据存入Oracle数据库。
(2)存储模块。负责元数据和实体数据的存储,并提供数据的备份。HBase和HDFS负责元数据和实体数据的存储。HDFS的数据存储不受数据类型的限制,可以是任何类型的数据。
(3)查询分析模块。主要工具为数据仓库工具Hive,支持类HSQL语句,便于查询,并提供对外的数据查询管理API。
(4)结果显示模块。提供可视化的查询结果显示、分布式文件系统的结构显示等功能。
(5)数据迁移模块。该模块使用Sqoop将Oracle中的数据转移到HBase中,自动定时执行。
平台数据模型包括气象数据模型和元数据模型,具体为气象HBase数据库表和元数据库表。HBase表中的列簇可以包 含多个或一 个列[11-13]。
气象HBase数据库见表1。
气象用户查询统计一般都由时间和站点为条件查询,站点和时间的组合型为唯一值,故将其作为Row key便于查询,当Hive和HBase整合后,查询时间较单一的Hive查询或者HBase查询时间长很多,但将attribute做为Row key查询时间会明显变短[13]。
元数据库表见表2。
表1 气象HBase数据库
表2 元数据库
元数据库表主要实现气象数据HBase数据库表和Oracle数据库表属性的管理,通过对元数据库表的操作实现对应气象数据库表属性的映射管理。
2.1.1 关系数据库气象数据信息表
本文实验采用的数据为地面气象资料,其中包括站点、日期、日平均温度、日平均湿度、日平均水汽压、日大气压、日最高气温和日最低气温8个属性,见表3。其中将站点和日期合并为attribute,具有唯一性,设计为主键。
表3 气象数据信息
2.1.2 HBase数据库表
如表4所示,其中AT 为avg _temperature (平均气温),MAXT 为max_temperature (最大气温),MINT 为min_temperature (最小气温),AVP 为avg_water_vapor_pressure (平均水汽压),AP为atmospheric_pressure(气压),AH 为avg_humity(平均湿度)。
表4 HBase数据库
attribute作为数据库表的Row key;Timestamp 为时间戳,其类型为64 位整型,此处时间戳由写入HBase 时HBase自动赋值,是可精确到毫秒的当前系统时间。temperature、pressure、humity 为3个列簇。每个列簇下又包括几 列,temperature 包 括AT、MAXT、MINT 三 列。pressure包括AVP、AP 两列。humity 只包括AH 一列。
2.2.1 云存储平台实验结果分析
为了验证上面的结果,使用4台PC机搭建了环境,系统配置见表5、表6。各台PC 机之间用百兆以太网卡,通过交换机连接。PC1 运行master即NameNode、Hmaster,PC2、PC3 运 行DataNode1 和DataNode2,HRegionServer1,HRegionServer2,PC4运行云存储服务系统,包括关系数据库和服务器。
表5 硬件参数信息
表6 软件参数信息
实验所使用的数据为地面195 个站点从1951 到2011年所采集的气象数据,实验中截取了1.3G,2.5G,5G,8G,10G,13G,25G 等7个大小不同的数据集。
评价指标选用系统响应时间,是指从客户端向存储模型发出查询和下载数据集命令开始,存储模型进行数据操作,将结果反馈给客户的整个时间,单位为秒。设计了4种实验方案,分别是:①查询1条数据;②查询1 000 000条数据;③查询统计1 000 000条数据;④查询下载1 000 000条数据。
由图3 (a)和图3 (b)可以看出,在进行数据查询时,当数据集大于5G 时,系统响应时间明显下降;由图3 (c)可以看出,在进行数据查询统计时,当数据集大于8G 时,系统响应时间增幅明显减少;由图3 (d)可以看出,在进行查询下载时,当数据集大于8G时,系统响应时间明显减少。由此可以得出结论,系统在处理大数据集时优势明显。
图3 实验结果
2.2.2 ARIMA 算法预测结果分析
(1)数据序列建模
课题选用内蒙古气象局某站点过去10年的日平均水气压和日平均相对湿度数据进行预测实验,预测未来15天的数据,根据课题选用的ARIMA 算法进行预测。过程如下:
1)数据预处理。数据中有 “32766”类数据,将该类数据用前一天与后一天的平均值代替。
2)进行零变换处理,形成新序列。
3)进行平稳性检验,经MATLAB 的相关函数 [H,PValue,TestStat,CriticalValue]=dfARDTest(zero)检验,H 返回值不为零时,为不平稳序列;H 返回值为零时,为平稳序列,无需进行差分处理。
4)分别计算序列自相关系数和偏自相关系数,根据其进行模型选择和初步定阶。
5)经AIC准则定阶,确定最终模型,日平均水气压序列的模型为ARMA (2,2),日平均相对湿度序列的模型为ARMA (4,3)。
6)参数估计,即计算yt=1yt-1+…+pyt-p+εtθ1εt-1-θqεt-q中1…p 和θ1…θq。
(2)预测结果
经以上步骤,日平均水汽压的最终模型为ARIMA (2,1,2),日平均相对湿度的最终模型为ARIMA (4,0,3),利用这2个模型对未来15天的日平均水汽压和日平均相对湿度进行了预测,其预测结果与真实数据的对比如图4和图5所示。
图4 平均水汽压预测值与真实值对比
图5 平均相对湿度预测值与真实值对比
(3)结果分析
从直观分析两个序列随着预测步长的增加,预测效果越来越差。经课题选用评价指标进行精确分析,其结果见表7和表8。
表7 日平均水汽压误差
表8 日平均相对湿度误差
由MAE列和MAPE 列知,随着预测步长的增加,日平均水汽压预测误差和日平均相对湿度预测误差基本成越来越大的增长趋势,说明该算法和模型在多步预测上存在一定缺陷,需要做进一步改进。
本文对基于气象应用的私有云存储进行了设计和开发,以Hadoop分布式框架为基础,在分布式文件系统HDFS的基础上结合分布式数据库HBase、数据仓库管理工具Hive、分布式数据库与关系数据库数据迁移工具Sqoop等工具在普通廉价的计算机集群上搭建和开发了该私有云存储平台,实现了气象数据海量存储、快速插入和高效查询下载以及被探测气象属性管理等功能。经平台实验表明,该平台具有良好的易扩展性、易维护性和对海量气象数据的高效数据管理特性。
目前该气象私有云存储平台基本完成预期目标但是比较粗糙并且仍在研究中,可以在此基础上继续完善,目前存储的气象数据还未包括气象云图、卫星云图等的非结构数据,并且气象数据十分宝贵,它的安全性十分重要,系统还需在其安全性等方面进行研究。
[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). [窦以文,卢俐,刘旭林,等.气象数据存贮管理系统 [J].计算机系统
应用,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].气象科技进展,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的海量数据存储平台设计与开发 [J].计算机研究与发展,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). [周可,王桦,李春花.云存储技术及其应用 [J].中兴通讯术,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].计算机应用与软件,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].计算机应用研究,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). [杨志豪,赵太银,姚兴苗,等.一种适应数据与计算密集型任务的私有云系统 实 现 研 究 [J].计 算 机 应 用 研 究,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的移动端云存储技术研究 [J].计算机工程与应用,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).[刘金芝,余丹,朱率率.一种新的云存储服务模型研究 [J].计算机应用研究,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).[李超,张明博,邢春晓,等.列存储数据库关键技术综述 [J].计算机科学.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].软件学报,2009,20 (5):1337-1348.]