基于Hadoop的云GIS体系结构研究

2013-04-07 07:47范建永
测绘通报 2013年11期
关键词:分布式计算体系结构空间数据

范建永,龙 明,熊 伟

(信息工程大学地理空间信息学院,河南郑州 450052)

一、引 言

云计算是IT产业继PC、互联网之后的第三次革新浪潮,自2008年以来发展迅速。国家“十二五”规划把云计算作为新一代IT产业研发与应用的重要领域。

目前,一般的GIS和WebGIS已经不能适应管理海量空间数据存储、分布式计算等特点,而云GIS作为云计算支持下的地理信息系统,因其在资源管理、数据共享、计算能力、产品成本和服务等方面独特的优势,已被广泛应用到地理信息产业中。已有组织研究基于云计算的GIS,如NASA、FGDC、NOAA等;GIS 公 司例如 Google、Esri、GISCloud.com、SuperMap已推出自己的基于云计算的 GIS应用平台。

Hadoop[1]是 Apache的一个可靠、高效、可伸缩的分布式系统基础架构,并且是开源、跨平台的,其出现大大推动了云技术和云存储的研究。

本文在研究现有云的GIS基础上,结合Hadoop的特点,提出了一种基于Hadoop的云 GIS体系结构。

二、国内外研究现状

云计算是并行计算(parallel computing)、分布式计算(distributed computing)和网格计算(grid computing)的发展,或者说是这些计算科学概念的商业实现[2]。它是将“computing as a service”以“pay-asyou-go”提供给最终用户的模式。云计算提供4种类型的服务:基础设施即服务(IaaS),平台即服务(PaaS),软件即服务(SaaS)和数据即服务(DaaS)。前3种是美国国家技术与标准局(NIST)的定义,DaaS则是地理信息科学的本质。以上4种服务共称为XaaS。

随着云计算概念的出现,云GIS的概念也被提出。Esri在2010年最新推出的ArcGIS 10[3]中称已经提供对云计算的支持,但从其发布的文档、发布会及网络报道来看,ArcGIS 10的云计算能力是与Amazon结合所提供的一种公有云产品(ArcGIS online),并不提供对建设企业级私有云的支持。Google提供了大量的空间数据的分布式存储服务,也提供了针对卫星图像数据操作服务,但是没有具体的证据证明它有能力执行真正的GIS空间分析。GISCloud.com声称是一个基于云的GIS系统,用户可以通过互联网使用其所提供的服务上传、编辑、转换和可视化GIS数据,它还提供了一定的空间分析能力,如缓冲区分析;但是无证据证明其工作原理是基于云的系统,如分布式数据存储和并行计算[4]。国内 SuperMap SGS 平台是在 SuperMap iServer Java 2008的基础上,与红帽合作发布的基于开源的云计算平台架构的GIS平台解决方案,但笔者并未看到更深入的技术探讨和对应报道。

关于对云GIS体系结构的理解,不同专家学者有着各自的看法。吴信才对云GIS的体系架构提出了自己的理解[5],云GIS的体系架构所应具备以下两个条件:一是功能与数据要分离,云GIS必须松耦合、可移动,使得云功能、云细胞可移动、可扩展,这样部署才比较方便;二是功能可搭建,可根据需要重复。这种观点并未从当前云计算发展的特点出发,并且服务与数据的分离等概念也不是云计算的产物,而是软件设计的产物。

方雷在其博士论文[6]中也对云GIS的体系结构提出了自己的看法,将云GIS分为了6个层次,分别是物理层、虚拟层、数据资源层、云计算支持平台及服务组件层、服务层和应用层。其提出的云GIS体系架构对本文研究有很大的参考价值。其研究采用的是微软Dryad平台,并在此基础上讨论了空间数据存储的负载均衡,但并未使用Dryad已有的分布式系统来存储和管理数据,并且文中只讨论了栅格影像数据的发布相关技术,对于矢量数据及其他数据未作进一步的研究。

Muzafar Ahmad Bhat等[7]提出了一种通用的云GIS体系结构,将云GIS分为通信层、配置层、逻辑层、注册管理层和公用层,并论述了云GIS的优点。但是其未对空间数据的分布式存储、计算与发布技术作进一步研究和测试。

CHEN Qichang等[8]提出了高性能工作流系统MRGIS,这是一个高效率执行GIS应用程序的基于MapReduce集群的并行和分布式计算平台,同样MRGIS也是基于云计算技术的GIS平台。MRGIS是利用Apache开源的云计算平台Hadoop MapReduce技术所实现的云GIS运行架构,前端通过Python与Hadoop进行整合,将所要执行的工作传送到Hadoop进行处理。他利用Hadoop进行卫星影像分类,将土地利用情况依据其影像特征分为森林、草地、灌木及沙漠4类类型,但未进一步研究空间数据的存储和发布。

本文在现有开源云平台Hadoop的基础上,结合GIS尤其是海量空间数据的特点来设计云GIS的体系结构。

三、基于Hadoop的云GIS体系结构

1.设计目的

当前不同云平台架构和功能相差很大,本文提出的基于Hadoop的云GIS体系结构主要目标为:

1)提供空间数据分布式存储与管理能力,包括多分辨率影像数据、多比例尺的矢量数据、元数据及其他业务部门数据。

2)提供基于分布式存储的高性能计算服务。

3)充分发挥每个节点的计算和存储能力。

4)为不同的空间数据与业务部门数据应用提供计算与发布服务。

2.基于Hadoop的云GIS体系结构

基于Hadoop的云GIS的体系结构如图1所示,共包括4层,自下而上分别为物理层、云平台层、服务层、应用层,以及横跨多个层次的服务聚合、服务监控、任务调度及计量、计费等。下面将对各层的功能进行简单论述。

(1)物理层

如图1所示,该层位于体系结构的最底层,由计算机、服务器和网络资源构成。

(2)云平台层

该层是体系结构的核心,可分为4层:操作系统层、云平台环境层、数据层和管理层。

云平台环境是基于Hadoop的分布式存储、分布式计算环境,主要包括海量空间数据的分布式存储、分布式管理和分布式处理等。在这一层中,分布式数据存储和管理使用 Hadoop的 HBase和HDFS。基于HBase建立相应的空间数据表,存储多分辨率影像数据、矢量数据、业务数据,其最终数据存放在HDFS中。HBase数据可以采用类SQL的语言进行访问,如 Pig、Hive。Zookeeper负责协调服务[9]。

数据包括多分辨率影像数据、矢量数据、元数据及其他相关业务数据。多分辨率影像数据可以选择不同的存储方式,分辨率不同的影像瓦片数据存储在HBase相应的表中,而未经分割的数据量较大的影像数据则直接存储到HDFS中。矢量数据、业务数据直接存储在HBase相应表中。元数据主要两部分:一是矢量、栅格等影像数据的元数据,二是各种业务元数据,都存储在HBase表中。这样解决了 HDFS不便管理小文件的问题,同时利用HBase时间戳来实现数据的版本控制。

管理层是核心层,负责管理上述所有需要调度管理的内容,具体包括提供数据分布式存储接口、高性能分布式计算管理接口及云平台功能聚合接口。分布式存储接口包括基于数据共享的透明存储接口、基于多分辨率影像地图服务的影像金字塔存储接口、以高性能分布式计算为目的的多分辨率影像数据分布式存储接口、矢量数据分布式存储接口、元数据存储接口,以及其他业务数据存储接口。本研究的高性能计算是基于Hadoop MapReduce的高性能计算(如图1所示),主要是运用MapReduce分布式并行计算架构,将空间数据的处理与分析任务分散到云中的各节点上处理,以降低数据运算时间。这种高性能计算适用于海量数据的处理工作和GIS的分析处理。

图1 基于Hadoop的云GIS体系结构

(3)服务层

按照云计算的概念,云计算的资源都是以网络服务的方式提供给用户。云计算服务包括IaaS、PaaS、SaaS和DaaS,云GIS一般只提供PaaS、SaaS和DaaS层服务。

服务层为应用提供服务目录,包括WMS、WFS、WCS、WPS等标准Web服务,还包括多分辨率影像数据多版本访问服务、数据基准服务、元数据管理服务及各行业应用服务等。

(4)应用层

应用层直接面向用户提供一站式服务,所有的资源和GIS功能都以服务的形式提供给用户,包括基础应用服务、专业应用服务和行业应用服务等。其主要利用Mashup的数据聚合和服务聚合,将服务层的不同服务进行组合,形成不同用途的应用服务,以满足不同用户的需求。

对于客户端,云GIS可以提供不同的服务用于支持不同的客户端系统,包括C/S架构桌面GIS、B/S架构下的WebGIS、移动GIS等。

3.设计特点

本文所提出的云GIS体系结构将开源云计算平台Hadoop与多分辨率影像数据、矢量数据,以及其服务发布结合进行研究。在现有云平台Hadoop的基础上,针对不同分辨率影像数据、不同比例尺矢量数据及不同业务数据,设计与之对应的云计算环境下的影像存储、管理模型,并发布服务。设计的特点如下:

1)基于Hadoop的多分辨率遥感影像数据、多比例尺矢量数据的存取管理。采用Hadoop的HDFS和HBase作为多分辨率影像数据、多比例尺矢量数据的分布式存储系统,并基于 HDFS和HBase的存取接口设计多分辨率影像数据、矢量数据等的存取服务。

2)基于Hadoop的多部门业务数据存取管理。将不同部门的业务数据存储在HBase表中,并设计存储接口,以便于不同用户的应用。

3)基于HBase的各种数据变更方法。HBase所有数据库的更新都有一个时间戳标记,利用时间戳实现共享数据的版本控制。

4)Hadoop环境下的高性能计算。高性能计算的目的是充分发挥每个计算节点的性能,本文的高性能计算是采用MapReduce编程模型设计的分布式计算。

5)透明的分布式存储、分布式计算接口。本文所提出的体系结构在充分利用已有云平台Hadoop、HBase的基础上,为用户隐藏后台分布式系统存储、计算的复杂性,提供给用户透明的分布式存储、分布式计算接口。同时利用HBase存储小文件,以解决小文件存储的问题。

6)数据发布。提供 WMS、WFS、WCS、WPS等标准Web服务,元数据管理服务等,以便于数据的共享与应用。

四、试验测试

为验证本文所提出的云GIS体系结构的可行性,以影像和矢量数据的分布式存储和服务发布为应用案例进行测试。测试环境利用两台计算机作为宿主机。一台计算机安装虚拟机虚拟出2台计算机,其中一台作为Web服务器,另一台部署Hadoop和HBase作为MasterNode和HBase Master节点;另外一台利用VMware虚拟出4台计算机,其中3台虚拟机部署 Hadoop和 HBase作为 SlaveNode和HResignServer节点,另一台配置 Zookeeper来协调服务。其配置如图2所示。主机 CPU为 Duo T7700,内存为4 GB;操作系统均为 Ubuntu Linux 10.1,Hadoop-1.0.0,HBase-0.92.0,Zookeeper-3.4.2,开发环境为Eclipse 3.6。

图2 试验环境配置图

试验用数据包括5 m分辨率航空数据(2.5 GB)、Google全球瓦片数据(1~9级)、浙江省1∶5 万矢量图(SHP 格式,2.13 GB)。

1.基于HBase的影像数据存储与检索

运用HBase基本API创建一个只包含一个列族Image的表Image_tb,编程实现将Google全球影像数据(1~9级)导入到表Image_tb中。将影像数据导入HBase之后,利用试验平台进行了影像数据检索试验。检索时间包括影像块索引计算时间和影像块数据读取写入本地时间。利用客户端分别从2个节点、3个节点和4个节点环境下读取相同屏幕显示范围的影像块(以64块为例),不同级的影像数据所需时间(各运行4次的平均时间)见表1。

表1 影像数据检索时间 s

2.矢量数据存储

利用GeoTools-2.7.4开源项目读取客户端本地的SHP数据,将数据导入到相应的表中。

3.基于MapReduce的矢量数据空间索引并行构建

本试验主要验证运用MapReduce构建矢量数据中线状要素的网格索引的效率。针对上节入库的等高线层和交通层,利用DDA构建网格索引的方法分别在2个节点、3个节点和4个节点所组成的集群中并行构建索引,所耗时间见表2。

表2 矢量数据并行构建索引时间 s

从表2可以看出,节点的数量直接影响计算所需要的时间,随着节点的增加,计算所需时间逐渐减少。

4.数据发布试验

利用HBase REST接口开发GeoTools-2.7.4的数据访问插件,对存储的数据进行符合OGC标准的地图服务发布(如WMS、WFS、WCS)。客户端用户可通过浏览器调用标准地图服务进行地图浏览,2~5级分辨率影像数据浏览效果如图3所示。

通过试验可知,本文设计的基于Hadoop的云GIS体系结构,将影像数据和矢量数据按照分辨率或比例尺分布式地存储在HBase相应的表中,数据的存储和访问效率得到有效提高。通过扩充节点数,可方便地获得较大的存储空间和较高的空间分析计算效率。

图3 2~5级分辨率影像数据浏览效果图

五、结束语

云计算是信息产业重要的发展方向,云计算技术与GIS的结合可以实现资源共享,从而有效地节省服务器资源、数据资源、计算资源和人力资源等。本文提出的基于Hadoop的云GIS体系结构,通过利用HBase和HDFS解决海量空间数据的高效存储检索问题,利用MapReduce编程框架解决海量空间数据空间分析的分布式计算效率问题,并提供OGC标准Web服务,为空间资源的高效、便捷共享提供了良好的基础。本文最后对所提出的体系结构通过试验进行了验证,试验表明,该体系结构可有效提高海量空间数据的存储检索效率和空间分析分布式计算的效率。

[1] Hadoop.Welcome to Apache Hadoop[EB/OL].[2013-05-15].http:∥hadoop.apache.org/.

[2] 刘鹏.云计算[M].北京:电子工业出版社,2010:1-2.

[3] 中国经济网.全球第一款支持云架构的GIS平台发布[EB/OL].[2010-08-03].http:∥news.xinhuanet.com/world/2010-08/03/c_12404512.htm.

[4] CAO Kang.Cloud Computing and Its Applications in GIS[D].[S.l.]:Clark University,2011:26-27.

[5] 中国软件网.吴信才:云GIS带来的最大影响是体系架构[EB/OL].[2010-12-06].http:∥www.edu.cn/zhuan_jia_ping_shu_1113/20101206/t20101206_549361.shtml.

[6] 方雷.基于云计算的土地资源服务高效处理理论框架及其平台关键技术研究[D].杭州:浙江大学,2011:94-97.

[7] MUZAFAR A B,RAZEEF M S,BASHIR A.Cloud Computing:a Solution to Geographical Information Systems(GIS)[J].International Journal on Computer Science and Engineering,2011,3(2):596-597.

[8] 陆嘉恒.Hadoop实战[M].北京:机械工业出版社,2011:327-355.

[9] CHEN Q C,WANG L Q ,SHANG Z B.MRGIS:A MapReduce-Enabled High Performance Workflow System for GIS[C]∥Proceedings of IEEE 4th International Conference on eScienc3.Indianapolis:[s.n.],2008:646-651.

猜你喜欢
分布式计算体系结构空间数据
GIS空间数据与地图制图融合技术
基于云计算的移动学习平台设计与实现
云计算中MapReduce分布式并行处理框架的研究与搭建
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
元数据驱动的多中心空间数据同步方法研究
面向异构分布式计算环境的并行任务调度优化方法
基于DODAF的装备体系结构设计
基于云计算的航天器控制系统自组织体系结构
基于文件系统的分布式海量空间数据高效存储与组织研究