气象数据是气象业务和科研工作的基础,数据蕴含巨大的价值。近年来,我国气象事业有了长足进步,也建设了大量的常规、特种自动气象探测设备,其传输、处理和服务应用的信息量呈指数形式增长。这些数据包括结构化的数据, 如自动气象站观测数据、人工观测数据等,也包括精细化数值预报产品、风云系列气象卫星产品和气象雷达产品等数据,对于结构化的数据可以通过关系型数据库进行分析、处理和计算,并取得了良好的业务应用效果,对于数值预报产品等数据大多基于文件方式 (如grib格式文件) 存储和处理,再通过专业的软件绘图后应用于实际业务中。因此,探讨新的针对数值预报产品数据进行分析处理的方式是目前气象业务应用的迫切需求,以实现这类气象数据资源的高效利用和共享。
如何做好气象数据服务一直是气象信息技术发展的重要方向之一,李集明等[1]从数据资源管理和共享发布两个方面分别介绍了元数据技术、数据网格技术、海量数据存储管理技术、数据挖掘技术等构建气象信息共享平台的关键技术;王伯民等[2]对气象科学数据发布策略进行了研究,本文以气象数值预报产品这类典型的气象数据为数据源,基于Hadoop技术体系实现气象数据文件的分布式存储和管理。按照资源即服务的理念,对数据服务进行基于SOA架构的封装,使之Web服务化,实际业务测试表明,基于Hadoop的数值预报产品服务平台与气象业务发展现状和需求结合紧密。
1 平台基础架构设计与实现从数值预报产品数据的入库方式和性能、特定条件查询搜索、获取要素场数据接口设计等方面综合考虑,以Hadoop基础上集成Hive,Hadoop与HBase技术组合以及Hadoop基础上整合SciHadoop 3种技术方案为备选方案,制定了入库方式、入库记录查询方式、数据存储组织方式等考核指标,经初步分析判断,尝试选用后选取Hadoop与HBase技术组合作为系统的技术实现方案,并在此基础上设计了三层结构的总体框架,具体如图 1所示。实际测试结果表明,该技术方案能够满足业务实际需求。
|
|
| 图 1. 系统总体框架 Fig 1. The diagram of the system overall frame | |
平台的系统架构由分布式资源集成层、分布式数据集成层和应用服务层3个部分组成。
分布式资源集成层充分利用Hadoop适合在廉价机器上对各种资源数据进行分布式存储和分布式管理,以及具有可伸缩性和高容错性等特点,基于Hadoop技术构建了分布式资源集成层[3],该层的主要功能是实现对基础设施的集成,即利用Hadoop技术将物理上分散的存储和计算资源整合为逻辑上统一的存储和计算资源。
分布式数据集成层包括数据接入模块、分布式数据存储和管理以及分布式计算引擎3个组成部分,其中数据接入模块对原始格式的数值预报产品进行解码和格式转换,并开发实现了将数据实时接入平台的功能;分布式数据存储和管理模块基于HDFS和HBase,实现了数据的分布式存储和管理;在分布式计算引擎模块中,MapReduce通过将对数据集的大规模操作分发给Hadoop集群中的每个节点进行处理,每个节点会周期性地将完成的工作和状态同步更新到管理节点上[4]。该层的主要功能是实现数值预报产品数据的实时接入,并实现数据的分布式存储和管理。
应用服务层包括分布式数据获取接口和分布式算法服务接口[5],为了更好地与其他业务系统实现对接,对外提供了基于Rest (Representational State Transfer) Web Service的标准化数据查询和访问接口,该层的功能主要是部署基于Rest Web Servic数据服务程序,从而在逻辑上对接业务应用系统。
系统功能如图 2所示。
|
|
| 图 2. 系统功能结构图 Fig 2. The system function structure diagram | |
2 数据存储管理模型设计
平台将数值预报产品数据解析后存储在HBase中,每种数值预报产品的元数据信息和实体数据分别存储在两个表中,即元数据表和实体数据表,不同的数值预报产品分开存储在不同的一组元数据表和实体数据表中,目前试验平台中实际存储了8类数值预报产品,包括ECMWF (欧洲中期数值预报中心) 发布的0.25°×0.25°水平分辨率和2.5°×2.5°水平分辨率的数值预报产品,JMA (日本气象厅) 发布的0.5°×0.5°水平分辨率和1.25°×1.25°水平分辨率的数值预报产品,中国华南区域气象中心发布的12 km和36 km分辨率GRAPES产品,逐时同化预报产品 (CHAF) 以及中国国家气象中心发布的T639产品等。其中元数据表中存储产品的所有要素名称列表、时次列表、高度列表、经纬度列表、起报时间列表等元信息,实体数据表以行键、列族、数据的方式存储数值预报产品的实体数据。
2.1 元数据存储格式元数据表中存储数值预报产品的所有要素名称列表、时次列表、高度列表、经纬度列表、起报时间列表等元数据, 具体存储的信息如表 1所示。
|
|
表 1 元数据表存储内容说明 Table 1 The description of metadata table content |
2.2 实体数据存储模型设计
气象数值预报产品属于格点场数据,即以二维阵列的格式记载高空要素场的分布,它的每一数据点称为格点,其中要素场包括高度场、风场 (南北向和东西向) 和温度场等。根据数值预报产品的实际特点,在进行实体数据存储模型设计时引入了命名格式为AAAATTT变量,AAAA为4个字母长度的英文缩写, 代表数值预报产品的预报要素名称;TTT为预报时效, 如temp006表示某一预报时刻起点算起未来6 h的温度预报。变量AAAATTT在逻辑上是4个维度的变量,表示为AAAATTT (lon, lat, level, time),4个维度均为离散值,其中lon是经向维度,lat是纬向维度,level是预报层次 (如850 hPa, 925 hPa等),time是数值预报开始预报的时刻,如2013062700,表示2013年6月27号00:00(世界时,下同)。每种数值预报产品在元数据表中的存储格式如表 2所示。
|
|
表 2 实体数据模型示意表 Table 2 The schematics table of entity data model |
行键 (Rowkey):数据表的主键。Rowkey的值由变量AAAATTT和起报时间共同确定。如对于产品CHAF的温度要素 (temp),在2012年9月1日00:00起报,预报时效为未来6 h的预报场,其Rowkey为temp006:2012090100。
时间戳 (Timestamp):每条数据更新的历史记录, 同一行键数据再次入库会记录不同的时间戳。
列族 (Column Family):每种数值预报产品不同预报层次的预报值存储在不同的列中。每个元数据表中的列族的列数根据具体预报产品决定。
数据 (Values):记录该产品的每个行键实际对应的数据,如对于产品CHAF的temp要素,temp006:2012090100的预报数据存储的数据 (Values) 如下:
{20.189807 21.235689 21.877865 20.234579……}
………
{21.345678 21.235696 20.456324 20.567795……}。
2.3 入库记录存储格式入库记录存储在RowkeyTab表中,以Rowkey:temp000:2012080100形式存储。其中,Rowkey为temp000:2012080100的数据的入库信息,temp000:2012080100为要素temp在2012年8月1日00:00起报时间的000时次的预报值。
3 数据服务接口 3.1 服务接口平台采用Rest Web Service提供对外数据服务接口,针对目前的气象业务需求[6],开发了数据查询接口、获取要素场数据接口、获取时间序列数据接口、数值预报单产品多要素数据服务接口、数值预报多产品单要素数据服务接口、三维雷达数据服务接口、Json和Surfer格式文件下载接口等多个数据访问接口。
3.2 接口调用方法接口调用可以通过调用http请求方式[7-9]嵌入应用程序,实际的调用过程与此类似,程序调用的过程如下:
InterfaceURL iu = new InterfaceURL ("ip:端口号", InterfaceURL.DATA_LIST);
iu.addParameter ("proName", "JMA");
iu.addParameter ("factor", factor);
iu.addParameter ("startDate", date);
iu.addParameter ("endDate", date);
iu.addParameter ("forecastStartTime", "00");
iu.addParameter ("forecastTimePeriod", "000");
iu.addParameter ("level", "1000.0");
iu.addParameter ("startLatitude", "");
iu.addParameter ("startLongitude", "");
iu.addParameter ("endLatitude", "");
iu.addParameter ("endLongitude", "");
iu.addParameter ("standardDate", "2012-08-24");
其中,InterfaceURL iu = new InterfaceURL ("ip:端口号", InterfaceURL.DATA_LIST); 用于指定开启了Web Service服务的机器,以及所需调用的接口,接口可参照InterfaceURL类中的定义。InterfaceURL.addParameter () 方法用于添加请求URL的参数[10]。通过InterfaceURL.toString () 方法可以获取完整的请求URL。
4 平台业务应用 4.1 平台实现基于Hadoop技术在多台X86架构服务器[11]上构建了系统试验应用平台,系统实现时在现有多个HDFS NameNode HA的解决方案选取了能自动双向失效切换的HA方案,针对气象业务的实际特点[12]设计实现了主节点 (NameNode) 的自动双向失效切换,系统通过Zookeeper技术实现故障切换,从而解决了Hadoop技术体系中主节点单点故障问题,实现了平台的可靠性、动态可扩展以及安全一体化等特点,实际模拟试验时,将主节点的进程终止,系统能够正常切换,测试时切换时间未超过2 min。经过近1年的业务试运行结果表明平台稳定可靠;基于Rest Web Service实现了数据服务接口的可靠访问,接口的各方面性能指标基本满足气象业务实际需求。
4.2 平台业务应用测试 4.2.1 测试硬件环境说明试验测试环境由型号为X3650的X86架构的服务器组成,服务器的具体配置:CPU为Xeon E5-2603 1.8 GHz,内存容量为4 GB,每台服务器配4块硬盘,硬盘参数为1 TB 7.2 K 6 Gbps NL SATA 3.5" G2HS HDD,网络环境为千兆局域网。
4.2.2 测试对象和方法业务试验测试以华南区域逐时循环同化分析与精细模式预报系统 (CHAF) 为测试对象,CHAF产品基本信息lonNum为309, latNum为267, level为1。每层的网格点位309×267=82503。每个网格点4字节存储,每层数据量约为330 KB。通过Rest Web Service获取数据。
4.2.3 数据接入性能测试以CHAF产品为测试对象,每轮进行3次测试,然后取平均值,分别测试数据接入处理模块处理100,200,…,1000个要素场数据所花费的平均时间,测试结果如图 3所示,写入1000个具有82503个格点的数值预报产品数据仅耗时12 s,完全满足业务实际需求。
|
|
| 图 3. 数据接入性能测试结果 Fig 3. Results of access performance of data | |
4.2.4 数据接口读取测试
以CHAF产品为测试对象,每轮进行3次测试,然后取平均值,分别测试通过接口读取100,200, …, 1000个要素场数据所花费的平均时间[13],测试结果如图 4所示。数据读取性能随着数据量的增加缓慢上升,读取1000个具有82503个格点的数值预报产品数据仅耗时4 s。
|
|
| 图 4. 数据接口读取性能测试结果 Fig 4. Results of reading performance of data interface | |
4.2.5 平台扩展性能测试
平台扩展性能测试以华南区域逐时循环同化分析与精细模式预报系统 (CHAF) 为测试对象。分别测试节点数不同情况下读取200个要素场数据的读取性能,其中每个要素场的数据为330 KB。测试每次为集群静态增加2个节点,每个节点的物理存储空间为4 TB,修改集群主节点的配置文件后重新启动集群,待整个平台数据自动再平衡[13]后进行读取测试。测试结果表明:随着平台节点数量的增加,数据读取性能总体平稳略优。测试结果如图 5所示。
|
|
| 图 5. 平台扩展性能测试结果 Fig 5. Results of performance of platform extension | |
5 小结
本文对基于Hadoop技术体系的数值预报产品服务平台的总体功能、关键技术及其在实际业务中的实例应用进行了详细阐述,该平台能够快速收集各数值预报中心分发的数值预报产品并实现快速的数据解码和数据接入,同时对诸如数值预报产品等非结构化气象数据实现分布式的存储和处理,基于Rest Web Service开发的业务应用接口能够高效对接气象业务系统。实际业务测试表明:
1) 基于Hadoop技术体系搭建的平台具有较好的系统稳定性和扩展性,可根据实际业务需求对系统进行动态在线扩展。
2) 平台能够高效处理诸如数值预报产品等非结构化气象数据,Hadoop与HBase技术组合是非结构化气象数据分析和处理技术的重要发展方向。
随着平台在气象业务中的推广应用,该平台将在气象业务现代化和一体化建设中发挥重要作用。当然,目前平台仍需要在实际应用中逐步优化,包括平台的可视化管理开发、可接入资料种类的扩展并进一步简化数据服务接口等[14-16]。另外,实时计算概念和技术的引入也是未来重要的研究方向。
| [1] | 李集明, 沈文海, 王国复. 气象信息共享平台及其关键技术研究. 应用气象学报, 2006, 17, (5): 621–622. DOI:10.11898/1001-7313.20060505 |
| [2] | 王伯民, 李集明, 吴增祥. 我国气象科学数据发布策略初步研究. 应用气象学报, 2004, 15, (增刊Ⅰ): 153–154. |
| [3] | 宋连春, 肖风劲, 李威. 我国现代化气候业务现状及未来发展趋势. 应用气象学报, 2013, 24, (5): 513–520. DOI:10.11898/1001-7313.20130501 |
| [4] | Randriamampianina R. Radiance-bias correction for a limited area model. Quarterly Journal of the Hungarian Meteorological Service, 2005, (3): 636. |
| [5] | 王萍, 刘颖, 王汉芝, 等. 基于格点场数据的沙尘暴双预报模型. 天津大学学报, 2006, 3, (25): 329–330. |
| [6] | 吴焕萍, 张永强, 孙家民, 等. 气候信息交互显示与分析平台 (CIPAS) 设计与实现. 应用气象学报, 2013, 24, (5): 631–640. DOI:10.11898/1001-7313.20130513 |
| [7] | 王涵, 李玲, 孙学庆, 等. CMACast内蒙古气象信息Web平台的设计与实现. 气象科技, 2014, 42, (2): 283–286. |
| [8] | Aguilera M K, Merchant A, Shah M, et al. Sinfonia:A New Paradigm for Building Scalable Distributed Systems. Proc of the 21st ACM Symp on Operating Systems Princi-ples, 2007: 159–174. |
| [9] | 杨锋, 吴华瑞, 朱华瑞, 等. 基于Hadoop的海量农业数据资源管理平台. 计算机工程, 2011, 37, (12): 243–244. |
| [10] | 林春泽, 智协飞, 韩艳, 等. 基于TIGGE资料的地面气温多模式超级集合预报. 应用气象学报, 2009, 20, (6): 706–712. DOI:10.11898/1001-7313.20090608 |
| [11] | 王彬, 肖文名, 李永生, 等. 华南区域中心计算资源管理系统的建立与应用. 气象, 2011, 37, (6): 764–770. DOI:10.7519/j.issn.1000-0526.2011.06.016 |
| [12] | 王彬, 常飚, 朱江, 等. 气象计算网格平台资源监视模块的设计与实现. 应用气象学报, 2009, 20, (5): 642–648. DOI:10.11898/1001-7313.20090517 |
| [13] | 于重重, 商利利, 谭励, 等. 半监督学习在不平衡样本集分类中的应用研究. 计算机应用研究, 2013, 30, (4): 1085–1089. |
| [14] | Ma T, Hempel M, Peng D M, et al. A survey of energy-efficient compression and communication techniques for multimedia in resource constrained systems. IEEE Communications Surveys & Tutorials, 2012, 14: 1–10. |
| [15] | 应毅, 任凯, 曹阳. 基于改进的MapReduce模型的Web挖掘. 科学技术与工程, 2013, 5: 78–80. |
| [16] | 任结, 周余, 于耀, 等. 基于ORB自然特征的AR实时系统实现. 计算机应用研究, 2012, 29, (9): 3594–3596. |
2015, 26 (1): 122-128



