第7讲-云计算与GIS_第1页
第7讲-云计算与GIS_第2页
第7讲-云计算与GIS_第3页
第7讲-云计算与GIS_第4页
第7讲-云计算与GIS_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7讲GIS与云计算主讲人:刘德儿1、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop1、云计算“云计算”的概念起源于大规模分布式计算技术,是并行计算(ParallelComputing)、分布式计算(DistributedComputing)和网格计算(GridComputing)的发展,是虚拟化(Visualization)、效用计算(UtilityComputing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。CloudComputing41、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop2、Google的云计算平台Google云计算概述为Google特定的网络应用定制的。基于分布式并行集群方式基础架构利用软件方式处理集群中经常发生的节点失效问题Google云计算基础架构模式分布式文件系统(GoogleFileSystem)

MapReduce编程模式分布式锁机制Chubby分布式数据库BigTableGFS(GoogleFileSystem)文件系统GFS是一个大型的分布式文件系统,它为Google云计算提供海量存储,并且与Chubby、MapReduce以及Bigtable等技术结合十分紧密,处于所有核心技术的底层。GFS使用廉价的商用机器构建分布式文件系统,将容错的任务交由文件系统来完成,利用软件的方法解决系统可靠性问题,这样可以使得存储的成本成倍下降。如何在频繁的故障中确保数据存储的安全、保证提供不间断的数据存储服务是GFS最核心的问题。GFS的精彩在于它采用了多种方法,从多个角度,使用不同的容错措施来确保整个系统的可靠性。GFS文件系统GFS将整个系统的节点分为三类角色:Client(客户端)是GFS提供给应用程序的访问接口。Master(主服务器)是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理,是GFS文件系统中的“大脑”。ChunkServer(数据块服务器)负责具体的存储工作。数据以文件的形式存储在ChunkServer上,ChunkServer的个数可以有多个,它的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块Chunk(数据块),默认是64MB,每个Chunk都有一个对应的索引号(Index)。为了保证可靠性,每个块被缺省保存3个备份。GFS文件系统客户端在访问GFS时,首先访问Master节点,获取将要与之进行交互的ChunkServers信息,然后直接访问这些ChunkServers完成数据存取。GFS的这种设计方法实现了控制流和数据流的分离。Client与Master之间只有控制流,而无数据流,这样就极大地降低了Master的负载,使之不成为系统性能的一个瓶颈。Client与ChunkServer之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个ChunkServer,从而使得整个系统的I/O高度并行,系统整体性能得到提高。客户端如何访问GFS?MapReduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来构成运算基本单元,用户只需提供自己的Map函数以及Reduce函数即可并行处理海量数据.map函数中,用户的程序将文本中所有出现的单词都按照出现计数1(以Key-Value对的形式)发射到MapReduce给出的一个中间临时空间中.通过MapReduce中间处理过程,将所有相同的单词产生的中间结果分配到同样一个Reduce函数中.而每一个Reduce函数则只需把计数累加在一起即可获得最后结果.MapReduce编程模式BigTableBigTable:基于GFS和Chubby的分布式存储系统对数据进行结构化存储和管理与GFS的联系1、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop3、开源云平台HadoopHadoop项目简介HDFS体系结构HDFS关键运行机制HadoopVS.Google(分布式文件系统)HadoopAPIHadoop环境搭建云计算相关资源图书馆数字资源//Hadoop项目简介Apache的解决方案Google云计算MapReduceBigTableGFSChubbyGFS-->HDFSMapReduce-->Hadoop

BigTable-->HBase

Hadoop项目简介HDFS为了做到可靠性(reliability)创建了多份数据块(datablocks)的复制(replicas),并将它们放置在服务器群的计算节点中(computenodes),MapReduce就可以在它们所在的节点上处理这些数据了。HDFS体系结构

NameNodeMasterDataNodeChunkseverHDFS关键运行机制--保障可靠性的措施一个名字节点和多个数据节点数据复制(冗余机制)--存放的位置(机架感知策略)故障检测--数据节点心跳包(检测是否宕机)块报告(安全模式下检测)数据完整性检测(校验和比较)--名字节点(日志文件,镜像文件)空间回收机制

HDFS关键运行机制--写文件流程客户端缓存流水线复制并发写控制流程:1.客户端把数据缓存到本地临时文件夹2.临时文件夹数据超过64M,客户端联系NameNode,NameNode分配DataNode,DataNode依照客户端的位置被排列成一个有着最近物理距离和最小的序列3.与序列的第一个数据服务器建立Socket连接,发送请求头,然后等待回应,依次下传,客户端得到回包,流水线建立成功,4.正式发送数据,以4K为大小传送HDFS关键运行机制--读文件流程客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息尝试从某个数据块对应的一组数据服务器中选出一个,进行连接(选取算法未加入相对位置的考虑)数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止HadoopVS.Google技术架构的比较数据结构化管理组件:Hbase→BigTable并行计算模型:MapReduce→MapReduce分布式文件系统:HDFS→GFSHadoop缺少分布式锁服务ChubbyHBaseMapReduceHDFSBigTableMapReduceGFSHadoop云计算应用ChubbyGoogle云计算应用HadoopVS.GoogleHDFS与GFS比较中心服务器模式的差异GFS:多台物理服务器,选择一台对外服务,损坏时可选择另外一台提供服务HDFS:单一中心服务器模式,存在单点故障原因:Hadoop缺少分布式锁服务HadoopVS.GoogleHDFS与GFS比较子服务器管理模式差异GFS:ChunkServer在Chubby中获取独占锁表示其生存状态,Master通过轮询这些独占锁获知ChunkServer的生存状态HDFS:DataNode通过心跳的方式告知NameNode其生存状态GFS中,Master损坏时,替补服务器可以快速获知ChunkServer的状态HDFS中,NameNode损坏后,NameNode恢复时需要花费一段时间获知DataNode的状态在添加数据存储节点时,GFS的伸缩性较HDFS要好原因:Hadoop缺乏分布式锁服务HadoopVS.GoogleHDFS与GFS比较HDFS具备安全模式获知数据块副本状态,若副本不足,则拷贝副本至安全数目(如3个)GFS不具备安全模式副本损坏处理:API读取副本失败时,Master负责发起拷贝任务HadoopVS.GoogleHDFS与GFS比较HDFS具备空间回收机制文件删除时,仅删除目录结构实际数据的删除在等待一段时间后实施优点:便于恢复文件HDFS

APIHadoopAPI被分成(divideinto)如下几种主要的包(package):

org.apache.hadoop.conf

定义了系统参数的配置文件处理API。

org.apache.hadoop.fs

定义了抽象的文件系统API。

org.apache.hadoop.Hdfs

HDFS,Hadoop的分布式文件系统实现。

org.apache.hadoop.io

定义了通用的I/OAPI,用于针对网络,数据库,文件等数据对象做读写操作。

org.apache.hadoop.ipc

用于网络服务端和客户端的工具,封装了网络异步I/O的基础模块。

org.apache.hadoop.mapreduce

Hadoop分布式计算系统(MapReduce)模块的实现,包括任务的分发调度等。

org.apache.hadoop.metrics

定义了用于性能统计信息的API,主要用于mapred和dfs模块。

org.apache.hadoop.record定义了针对记录的I/OAPI类以及一个记录描述语言翻译器,用于简化将记录序列化成语言中性的格式(language-neutralmanner)。

org.apache.hadoop.tools

定义了一些命令行的工具。

org.apache.hadoop.util

定义了一些公用的API。org.apache.hadoop.Secruity用户和用户组信息HDFSAPI--org.apache.hadoop.fs

◦org.apache.hadoop.fs.FileSystem(implementsjava.io.Closeable)◦org.apache.hadoop.fs.FilterFileSystem◦org.apache.hadoop.fs.ChecksumFileSystem◦org.apache.hadoop.fs.InMemoryFileSystem◦org.apache.hadoop.fs.LocalFileSystem◦org.apache.hadoop.fs.HarFileSystem◦org.apache.hadoop.fs.RawLocalFileSystem抽象文件系统的基本要素和基本操作。最显著的一个特点就是,FileSystem文件系统是基于流式数据访问的,并且,可以基于命令行的方式来对文件系统的文件进行管理与操作。HDFSAPI

--org.apche.hadoop.ipc。org.apache.hadoop.ipc.VersionedProtocol

。tocol.ClientProtocol

。tocol.ClientDatanodeProtocol

。tocol.NamenodeProtocol

。tocol.DatanodeProtocol

。tocol.InterDatanodeProtocolHDFS

API

--org.apache.hadoop.HDFSClientProtocol协议:客户端进程与Namenode进程进行通信DataNodeProtocol协议:一个DFSDatanode用户与Namenode进行通信的协议InterDatanodeProtocol协议:Datanode之间的通信ClientDatanodeProtocol协议:客户端进程与datenode进程进行通信NamenodeProtocol协议:次级Namenode(SecondaryNameNode)与Namenode进行通信所需进行的操作clientNameNodeDataNodeclientProtocolDataNodeProtocolClientDatanodeProtocolNamenode主要实现了ClientProtocol,DatanodeProtocol,NamenodeProtocolHDFSAPI

--ClientProtocol(文件基本操作接口)获取到指定文件src的全部块的信息返回LocatedBlocks,包括文件长度、组成文件的块及其存储位置(所在的Datanode数据结点)

--public

LocatedBlocks

getBlockLocations(String

src,

long

offset,

long

length)

在制定的文件系统命名空间中创建一个文件入口(entry),在命名空间中创建一个文件入口。该方法将创建一个由src路径指定的空文件

--public

void

create(String

src,

FsPermission

masked,

String

clientName,

boolean

overwrite,

short

replication,

long

blockSize)

对指定文件执行追加写操作,返回信息,可以定位到追加写入最后部分块的信息

--public

LocatedBlock

append(String

src,

String

clientName)设置副本因子,为一个指定的文件修改块副本因子

--public

boolean

setReplication(String

src,

short

replication)HDFSAPI--ClientProtocol(文件基本操作接口)为已经存在的目录或者文件,设置给定的操作权限--publicvoidsetPermission(Stringsrc,FsPermissionpermission)设置文件或目录属主--publicvoidsetOwner(Stringsrc,Stringusername,Stringgroupname)客户端放弃对指定块的操作--publicvoidabandonBlock(Blockb,Stringsrc,Stringholder)客户端向一个当前为写操作打开的文件写入数据块--publicLocatedBlockaddBlock(Stringsrc,StringclientName)客户端完成对指定文件的写操作,并期望能够写完,在写完以后关闭文件--publicbooleancomplete(Stringsrc,StringclientName)客户端向Namenode报告corrupted块的信息(块在Datanode上的位置信息)--publicvoidreportBadBlocks(LocatedBlock[]blocks)throwsIOExceptionHDFSAPI--ClientProtocol(文件基本操作接口)在文件系统命令空间中重命名一个文件或目录--publicbooleanrename(Stringsrc,Stringdst)删除文件或目录src--publicbooleandelete(Stringsrc)删除文件或目录src,根据recursive选项来执行--publicbooleandelete(Stringsrc,booleanrecursive)throwsIOException;创建目录src,并赋予目录src指定的nasked权限--publicbooleanmkdirs(Stringsrc,FsPermissionmasked)throwsIOException;获取指定目录src中的文件列表--publicFileStatus[]getListing(Stringsrc)throwsIOException;HDFSAPI文件读取在客户端DFSClient中,有一个DFSClient.DFSInputStream类。当需要读取一个文件的时候,会生成一个DFSInputStream的实例DFSInputStream的实例调用ClientProtocol定义getBlockLocations接口,取得一个LocatedBlocks类的对象,这个对象包含一组LocatedBlock,那里面有所规定位置中包含的所有数据块信息,以及数据块对应的所有数据服务器的位置信息读取开始,

DFSInputStream的Read方法如有读取时发现错误,客户端向Namenode报告corrupted块的信息public

void

reportBadBlocks(LocatedBlock[]

blocks)HDFSAPI文件存入DFSClient也有一个DFSClient.DFSOutputStream类,写入开始,会创建此类的实例DFSOutputStream会从NameNode上拿一个LocatedBlock写入开始,调用DFSOutputStream的Write方法HDFSAPI–ClientProtocol(系统管理相关接口)监听客户端,Namenode监听到某个客户端发送的心跳状态public

void

renewLease(String

clientName)

获取文件系统的状态统计数据--public

long[]

getStats()

注:返回的数组:public

int

GET_STATS_CAPACITY_IDX

=

0;

public

int

GET_STATS_USED_IDX

=

1;

public

int

GET_STATS_REMAINING_IDX

=

2;

public

int

GET_STATS_UNDER_REPLICATED_IDX

=

3;

public

int

GET_STATS_CORRUPT_BLOCKS_IDX

=

4;

public

int

GET_STATS_MISSING_BLOCKS_IDX

=

5;安全模式开关操作public

boolean

setSafeMode(FSConstants.SafeModeAction

action)

HDFSAPI–ClientProtocol(系统管理相关接口)保存FsImage映像,同时将更新同步到EditLog中,要求具有超级权限,并且在安全模式下进行。--public

void

saveNamespace()持久化文件系统元数据,将Namenode结点上的数据结构写入到指定的文件中,如果指定文件已经存在,则追加到该文件中

--metaSave(String

filename)Hadoop集群搭建1、三台PC机,Linux操作系统各主机对应的ip地址:

1ubuntu12ubuntu23ubuntu32、Hadoop安装包(/core/releases.html)3、安装jdk1.5以上版本一、实验环境1、在所有的机器上建立相同的用户,例如:grid。2、SSH配置,实现在机器之间执行指令的时候不需要输入密码。在ubuntu1(准备设为namenode)上生成密钥对,执行$ssh-keygen-trsa,然后一路回车,就会按照默认的选项将生成的密钥对保存在.ssh/id_rsa文件中。执行:

$cd~/.ssh$cpid_rsa.pubauthorized_keys$scpauthorized_keysubuntu2:/home/grid/.ssh$scpauthorized_keysubuntu3:/home/grid/.ssh二、Hadoop安装Hadoop集群搭建3、在ubuntu1上配置Hadoop。编辑conf/hadoop-site.xml解压缩,执行:$tar–zxvf../hadoop-0.19.1.tar.gz编辑conf/master,修改为master的主机名(每个主机名一行)ubuntu1编辑conf/slaves,加入所有slaves的主机名

ubuntu2ubuntu3Hadoop集群搭建

编辑所有机器的conf/hadoop-env.sh文件,将JAVA_HOME变量设置为各自JDK安装的根目录,不同机器可以使用不同的JAVA版本。4、其它机器上的配置把Hadoop安装文件复制到其他机器上$scp–rhadoop-0.19.1ubuntu2:/home/grid$scp–rhadoop-0.19.1ubuntu3:/home/gridHadoop集群搭建三、Hadoop运行1、格式化分布式文件系统

Hadoop集群搭建2、启动Hadoop守护进程3、停止Hadoop守护进程HDFS实验:观察数据块在Datanode上的分布三个Datanode文件副本个数为2文件f.zip的数据块分布情况关掉一个Datanode时数据块分布情况,此时文件仍然可用关掉两个Datanode时数据块的分布情况,此时文件不可用重新启动另外两个Datanode时数据块分布情况1、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop4、云GIS内涵与特征云GIS就是将云计算的各种特征用于支撑地理空间信息的各要素,包括建模、存储、处理等等,从而改变用户传统的GIS应用方法和建设模式,以一种更加友好的方式,高效率、低成本的使用地理信息资源。给企业带来什?4、云GIS内涵与特征云计算特征超大规模

“云”具有相当的规模,Google云计算已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。具有超大规模、虚拟化、高可靠性、通用性和高可伸缩性、按需服务、极其廉价的特征。(2)虚拟化云计算特征云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一部手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。(3)高可靠性4、云GIS内涵与特征云计算特征(6)按需服务(4)通用性(5)高可扩展性云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。“云”是一个庞大的资源池,你按需购买;云可以象自来水,电,煤气那样计费。4、云GIS内涵与特征云计算特征由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本。(7)极其廉价(8)潜在的危险性云计算服务除了提供计算服务外,还必然提供了存储服务。但是云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。4、云GIS内涵与特征判断云计算标准据刘鹏(中国电子学会云计算专家委员会委员、解放军理工大学教授)(1)用户所需的资源不在客户端而来自网络(2)服务能力具有分钟级或秒级的伸缩能力(3)具有较之传统模式5倍以上的性能价格比优势4、云GIS内涵与特征4、云GIS内涵与特征—云服务什么是云服务云选择包含至少三层IT技术架构。是通过网页浏览器把程序和功能传给成千上万的用户。实例包括:S,Esri的BusinessAnalystOnline(BAO),ArcGISOnlineSharing,以及GISPortalToolkit。软件即服务(SaaS)4、云GIS内涵与特征—云服务平台即服务(PaaS)即大家所熟知的“云件“或”Cloudware“,PaaS能够将私人电脑中的资源转移至网络云,是SaaS的延伸,这种形式的服务把开发环境作为一种服务来提供。允许开发者进行创建、测试和部署应用,即使用中间商的设备来开发自己的程序并通过互联网和其服务器传到用户手中。实例包括:ArcGISOnline共享的RESTAPI和ArcGISWebMappingAPIs.4、云GIS内涵与特征—云服务基础设施即服务(IaaS)由计算机架构如虚拟化组成,并作为服务实现为用户提供。基于Internet的服务(如存储和数据库)是IaaS的一部分。IaaS提供了动态和高效的部署架构,IaaS实例:AmazonSimpleStorageService(S3),AmazonElasticCloudCompute(EC3)即弹性云计算,Akamai,以及ArcGISOnlineDataCenters等。4、云GIS内涵与特征—云类型私有云

私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。

虚拟私有云:对于企业应用来说,在这中间可能跨内部云、外部云,也可能是自己建立的有几个数据中心。比如说你的企业在上海、北京、广州都有数据中心,那去跨这些数据中心形成的虚拟私有云,这个云是一个逻辑上是一个整体,但物理上跨很多数据中心,这就类似于今天在网络里看到的VPN概念。私有云指为外部客户提供服务的云,它所有的服务是供别人使用,而不是自己用。云服务遍布整个因特网,能够服务于几乎不限数量的拥有相同基本架构的客户。如亚马逊、Rackspace、S、微软、Google等推出的公共云产品。4、云GIS内涵与特征—云类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论