当前位置:文档之家› 栅格GIS的分布式存储方案

栅格GIS的分布式存储方案

中国地质大学研究生课程论文封面课程名称遗传算法研究生姓名研究生学号研究生专业基于栅格GIS系统的分布式存储方案【摘要】本文第一部分介绍了云GIS的概念与优缺点,第二部分介绍了分布式的NoSQL数据库HBase,第三部分介绍了如何将地理栅格数据如何存储到HBase中。

云计算作为一种新型的计算方式已经发展多年了,已经与各个行业相结合。

GIS作为一种传统的行业应用,其最明显的特点是对超大规模数据集的存储,而云计算的数据存储能力刚好迎合了GIS的需要,因此将云计算与GIS结合起来是理所当然的。

当数据量变的巨大的时候,传统的关系型数据库性能会急剧下降。

并且ER 数据库也不符合云计算的特点,而最近快速发展的NOSQL数据库则成为的分布式存储数据的一个选择。

本文选取了NOSQL数据库中的一种文档型数据库HBase 来作为存储载体,并针对HBase的限制,采取了切分栅格数据的方法,以达到最好的性能。

一、基于云的GIS互联网的发展给传统的GIS带来了很多可能和机会。

一些GIS公司已经发布了像ESRI的ArcGIS服务器、谷歌地球和必应地图等这种面向互联网的各种不同层次的GIS系统。

现今出现的云计算将会给GIS界带来更多令人激动的机会。

1.1 云GIS定义在定义云GIS之前,十分值得我们来回顾一下我们正在使用的GIS系统的通性。

根据如何将GIS系统的服务部署和如何分发到用户,我们可以把GIS系统分为如下三种:桌面GIS、C/S GIS和公共互联网GIS。

1.1.1GIS类型桌面GIS:计算和存储单元存储在终端用户的电脑上。

ESRI公司的ArcGIS 桌面9.3,Clark 实验室的IDRISI 和MapInfo可以被分为这一类。

这种类型的GIS 并不一定需要网络。

C/S GIS:大量的存储空间未于服务器,能够根据操作的类型决定是在服务器上或(和)客户机上执行计算操作。

这种类型的GIS至少需要内部网的支持。

来自于经过认证的指定组的用户可以使用指定服务器上的资源。

用户使用客户机来显示和执行查询以及其他类型的编辑。

当这些操作完成,用户提交这些变化会服务器。

一个典型的例子是用ArcGIS桌面中的ArcMS用ArcGIS浏览器来浏览ArcGIS 服务器。

尽管这种类型的GIS系统有些时候能通过互联网传送一些数据,但基于它的硬件和软件组成,并不能用来被大量的公共用户来操作。

公共互联网GIS:计算和存储两者都位于服务器端。

这种类型的GIS一般只能提供数据可视化和像查询这样有限的操作。

这种Lexington的GIS系统通常只关注大量的公共用户。

谷歌地图、谷歌地球以及毕竟地图就是这种能够提供一些GIS功能但缺乏必要的分析之间的公共会联网的系统。

分布式GIS:不管是实现了那种分布式计算模型的GIS系统都叫分布式GIS 系统。

这些计算模型包括网格计算、点对点计算、云计算和高性能计算。

但是,一个真正的分布式GIS系统并没有出现。

1.1.2 云GIS定义在理解不同的云计算系统之后,归纳出如下一个暂定的云计算GIS定义:“一个GIS系统建立在云计算基础设施之上,使用云基础设置动态地调整他的计算和(或)存储能力,提供并行化的服务。

”上述关于服务的定义不但包括数据显示和查询功能,也包跨数据编辑和空间分析功能。

1.1.3云GIS和其他GIS最大的不同点尽管从定义上就能很明显地看出不同种类GIS的不同点,但还是需要指出一些他们定义中的区别,基于云的GIS是分布式GIS的一个子集。

基于云的GIS和其他一些分布式的类似于基于网格的GIS和基于高性能的GIS的最大区别在于他们建立的硬件和协议以及用户群之上。

高性能GIS使用昂贵的硬件但云计算使用廉价的商业电脑。

网格使用更严格的访问控制和会联网协议但云计算使用相对宽松的访问控制和公共协议。

同时,不管是基于高性能的GIS还是基于网格的GIS都不是面向大规模的公共用户而设计的,而云计算是。

公共互联网的GIS和基于云的GIS的不同点在于他们的功能集以及他们所使用的硬件设施。

与Web服务器相比较,基于云的GIS使用的云计算基础设施能够提供更大的数据吞吐力。

通常来说,因为基础设施的不同,基于云的GIS能够提供更大的数据和更密集计算服务。

实际上,像谷歌地图和谷歌地球这些公共的互联网地图服务已经是基于云的。

1.1.4 当前基于云的GIS概览随着云计算的发展,一些基于云或声称基于云的GIS系统已经发布了。

这些系统包括:谷歌地图引擎(Google Earth Engine)、基于云的ArcGIS 服务器和。

但是,按照3.1.2的定义这些GIS系统没有一个可以真正的叫做基于云的GIS系统。

目前,谷歌地球引擎能够提供存储大量分布式GIS数据的集合,它也能够提供一定程度上的卫星影像数据操作,但并没有具体的证据表明这就是执行真正空间GIS算法的能力。

ESRI提供了一些基于云的GIS解决方案:ArcGIS服务应用在亚马逊EC2,、ArcLogistics和在线商业分析(BAO)上。

亚马逊EC2 和 建立在相似的架构之上(见图3),ArcGIS服务器运行在亚马逊EC2云的虚拟机上。

安装在亚马逊EC2上的ArcGIS服务软件与安装在单个微型计算机上的ArcGIS 服务软件一样。

它在通过预装安装的AecGIS服务上通过创建更多的虚拟机来达到扩展性。

这种架构能够通过在同一时间段部署多台独立服务器的方法在一定程度上能够提供较好的扩展性。

但是,这些服务器不能提供与扩展性一样好的性能。

亚马逊EC2的所有ArcGIS服务器全部都是独立运行,这意味着它在并行任务自动化或转移任务加载的动态化上存在一定的管理系统短板。

因此,这种架构可以提供完美的访问性,但不能提供完美的性能。

ArcLogistics 和在线商业分析(BAO)是ESRI提供的软件即服务的一种类型。

AecLogistics能够给用户提供经过基于一些因素优化了的日常和计划。

BAO是一个能够提供基于位置的统计、消费者消费和其他一些商业数据的报告和地图的web服务。

基于云的ArcLogistics运行在亚马逊EC2上,而BAO运行在ERSI数据中心。

ArcLogistics和BAO会肯定会提供强大的GIS查询和分析功能,但是根据3.1.2的定义它们因为只提供了有限的几种GIS分析功能而不能被归类于我们强调的基于云的GIS系统。

也宣称是一个基于云的GIS系统。

用户可以通过浏览器使用它们的服务来上传、编辑、转换、创建和分析GIS数据。

他们也提供了一定的空间分析能力,比如热点和缓冲分析。

但是,由于其鉴于他们没有公开说明他们的系统作为一个基于云的系统是如何运行的,因此也没有证据来支持他们有利用云计算分布式数据存储和并行计算优点的能力。

1.2 为什么让GIS建立在云上2.2.1 基于云GIS的优点一般来说基于云的GIS会从云计算的基础设施中得到很多好处。

这些好处包括更好的可扩展性、可靠性、可用性、并行化、规模经济,以及更有效率的升级模型,更容易分享和分发,友好的大数据等等。

单就GIS来说,采用云计算基础设施的好处有:低门槛的准入标准和更多的面向服务化,特别是对业余的用户。

GIS系统前期通常需要投资大量的硬件、软件。

基于云的GIS给用户提供了简单的接入(访问)方式。

和很多桌面GIS或者C/S GIS系统不同的是,基于云的GIS系统不需要任何的前期硬件和软件的投资。

用户能马上上传他或者她的数据到云GIS,运行应用程序,只需为每一个用户付一次费。

所有的这一切只需要他或者她需要一张信用卡可以给服务付费。

另外的一个云计算GIS的特点是提供数据服务但不需要(赠送)真实的数据。

举个例子:这里有一份因为隐私问题而不能分发给研究人员的高分辨率的家庭人口普查数据。

当研究人员需要这样一份数据时,可以提供给他们一些粗粒度的区块普查数据让他们进行推断。

这可能会给那些研究者特别是那些需要执行基于人口普查数据分析的研究者带来一些不便。

利用云GIS的优点,研究者可以在Census Bureau的服务器上做一次关于人口数据的分析服务请求,Census Bureau能够返回这些分析的结果给研究者而不需要提供真实的数据给他们。

2.2.2 云GIS的缺点基于云计算的GIS也继承了一些云计算的缺点。

需要被重点关注的问题是:隐私和数据安全,数据锁和性能的不可预测性。

但是,由于大多数GIS分析使用了大量的数据,因此云GIS另一个缺点是云计算中的网络速度瓶颈。

尽管在云计算基础设施中采用了高速网络来连接计算节点,但是连接用户电脑和云计算基础设施之间的网络的出站和入站速度受到公共互联网提供商(ISP)的巨大限制。

有时候用户可能在云GIS上需要上传或下载他们自己的数据,在这种情况下,如果这些数据很大,完成传输这些数据可能要花费很多的时间。

二、HBase介绍2.1HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce 来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase 利用Zookeeper作为对应。

图1 Hadoop生态系统上图描述了Hadoop EcoSystem中的各层系统,其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce 为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。

Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

2.2 HBase访问接口1. Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job 并行批处理HBase表数据。

2. HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用。

3. Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据。

4. REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制。

相关主题