讲云计算与GISPPT课件.ppt_第1页
讲云计算与GISPPT课件.ppt_第2页
讲云计算与GISPPT课件.ppt_第3页
讲云计算与GISPPT课件.ppt_第4页
讲云计算与GISPPT课件.ppt_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

第7讲GIS与云计算 主讲人 刘德儿 1 云计算 主要内容 4 云GIS内涵与特征 5 Esri的云计算 2 Google的云计算 3 开源云平台Hadoop 1 云计算 云计算 的概念起源于大规模分布式计算技术 是并行计算 ParallelComputing 分布式计算 DistributedComputing 和网格计算 GridComputing 的发展 是虚拟化 Visualization 效用计算 UtilityComputing IaaS 基础设施即服务 PaaS 平台即服务 SaaS 软件即服务 等概念混合演进并跃升的结果 CloudComputing 4 1 云计算 主要内容 4 云GIS内涵与特征 5 Esri的云计算 2 Google的云计算 3 开源云平台Hadoop 2 Google的云计算平台 Google云计算概述为Google特定的网络应用定制的 基于分布式并行集群方式基础架构利用软件方式处理集群中经常发生的节点失效问题Google云计算基础架构模式分布式文件系统 GoogleFileSystem MapReduce编程模式分布式锁机制Chubby分布式数据库BigTable GFS 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编程模式 BigTable BigTable 基于GFS和Chubby的分布式存储系统对数据进行结构化存储和管理与GFS的联系 1 云计算 主要内容 4 云GIS内涵与特征 5 Esri的云计算 2 Google的云计算 3 开源云平台Hadoop 3 开源云平台Hadoop Hadoop项目简介HDFS体系结构HDFS关键运行机制HadoopVS Google 分布式文件系统 HadoopAPIHadoop环境搭建 云计算相关资源图书馆数字资源 Hadoop项目简介 Apache的解决方案 GFS HDFSMapReduce HadoopBigTable HBase Hadoop项目简介 HDFS为了做到可靠性 reliability 创建了多份数据块 datablocks 的复制 replicas 并将它们放置在服务器群的计算节点中 computenodes MapReduce就可以在它们所在的节点上处理这些数据了 HDFS体系结构 NameNode MasterDataNode Chunksever HDFS关键运行机制 保障可靠性的措施 一个名字节点和多个数据节点数据复制 冗余机制 存放的位置 机架感知策略 故障检测 数据节点心跳包 检测是否宕机 块报告 安全模式下检测 数据完整性检测 校验和比较 名字节点 日志文件 镜像文件 空间回收机制 HDFS关键运行机制 写文件流程 客户端缓存流水线复制并发写控制流程 1 客户端把数据缓存到本地临时文件夹2 临时文件夹数据超过64M 客户端联系NameNode NameNode分配DataNode DataNode依照客户端的位置被排列成一个有着最近物理距离和最小的序列3 与序列的第一个数据服务器建立Socket连接 发送请求头 然后等待回应 依次下传 客户端得到回包 流水线建立成功 4 正式发送数据 以4K为大小传送 HDFS关键运行机制 读文件流程 客户端联系NameNode 得到所有数据块信息 以及数据块对应的所有数据服务器的位置信息尝试从某个数据块对应的一组数据服务器中选出一个 进行连接 选取算法未加入相对位置的考虑 数据被一个包一个包发送回客户端 等到整个数据块的数据都被读取完了 就会断开此链接 尝试连接下一个数据块对应的数据服务器 整个流程 依次如此反复 直到所有想读的都读取完了为止 HadoopVS Google 技术架构的比较数据结构化管理组件 Hbase BigTable并行计算模型 MapReduce MapReduce分布式文件系统 HDFS GFSHadoop缺少分布式锁服务Chubby HBase MapReduce HDFS BigTable MapReduce GFS Hadoop云计算应用 Chubby Google云计算应用 HadoopVS Google HDFS与GFS比较中心服务器模式的差异GFS 多台物理服务器 选择一台对外服务 损坏时可选择另外一台提供服务HDFS 单一中心服务器模式 存在单点故障原因 Hadoop缺少分布式锁服务 HadoopVS Google HDFS与GFS比较子服务器管理模式差异GFS ChunkServer在Chubby中获取独占锁表示其生存状态 Master通过轮询这些独占锁获知ChunkServer的生存状态HDFS DataNode通过心跳的方式告知NameNode其生存状态GFS中 Master损坏时 替补服务器可以快速获知ChunkServer的状态HDFS中 NameNode损坏后 NameNode恢复时需要花费一段时间获知DataNode的状态在添加数据存储节点时 GFS的伸缩性较HDFS要好原因 Hadoop缺乏分布式锁服务 HadoopVS Google HDFS与GFS比较HDFS具备安全模式获知数据块副本状态 若副本不足 则拷贝副本至安全数目 如3个 GFS不具备安全模式副本损坏处理 API读取副本失败时 Master负责发起拷贝任务 HadoopVS Google HDFS与GFS比较HDFS具备空间回收机制文件删除时 仅删除目录结构实际数据的删除在等待一段时间后实施优点 便于恢复文件 HDFSAPI HadoopAPI被分成 divideinto 如下几种主要的包 package org apache hadoop conf定义了系统参数的配置文件处理API org apache hadoop fs定义了抽象的文件系统API org apache hadoop HdfsHDFS Hadoop的分布式文件系统实现 org apache hadoop io定义了通用的I OAPI 用于针对网络 数据库 文件等数据对象做读写操作 org apache hadoop ipc用于网络服务端和客户端的工具 封装了网络异步I O的基础模块 org apache hadoop mapreduceHadoop分布式计算系统 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 org apache hadoop hdfs protocol ClientProtocol org apache hadoop hdfs protocol ClientDatanodeProtocol org apache hadoop hdfs server protocol NamenodeProtocol org apache hadoop hdfs server protocol DatanodeProtocol org apache hadoop hdfs server protocol InterDatanodeProtocol HDFSAPI org apache hadoop HDFS ClientProtocol协议 客户端进程与Namenode进程进行通信DataNodeProtocol协议 一个DFSDatanode用户与Namenode进行通信的协议InterDatanodeProtocol协议 Datanode之间的通信ClientDatanodeProtocol协议 客户端进程与datenode进程进行通信NamenodeProtocol协议 次级Namenode SecondaryNameNode 与Namenode进行通信所需进行的操作 Namenode主要实现了ClientProtocol DatanodeProtocol NamenodeProtocol HDFSAPI ClientProtocol 文件基本操作接口 获取到指定文件src的全部块的信息返回LocatedBlocks 包括文件长度 组成文件的块及其存储位置 所在的Datanode数据结点 publicLocatedBlocksgetBlockLocations Stringsrc longoffset longlength 在制定的文件系统命名空间中创建一个文件入口 entry 在命名空间中创建一个文件入口 该方法将创建一个由src路径指定的空文件 publicvoidcreate Stringsrc FsPermissionmasked StringclientName booleanoverwrite shortreplication longblockSize 对指定文件执行追加写操作 返回信息 可以定位到追加写入最后部分块的信息 publicLocatedBlockappend Stringsrc StringclientName 设置副本因子 为一个指定的文件修改块副本因子 publicbooleansetReplication Stringsrc shortreplication 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 throwsIOException HDFSAPI 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块的信息publicvoidreportBadBlocks LocatedBlock blocks HDFSAPI 文件存入DFSClient也有一个DFSClient DFSOutputStream类 写入开始 会创建此类的实例DFSOutputStream会从NameNode上拿一个LocatedBlock写入开始 调用DFSOutputStream的Write方法 HDFSAPI ClientProtocol 系统管理相关接口 监听客户端 Namenode监听到某个客户端发送的心跳状态publicvoidrenewLease StringclientName 获取文件系统的状态统计数据 publiclong getStats 注 返回的数组 publicintGET STATS CAPACITY IDX 0 publicintGET STATS USED IDX 1 publicintGET STATS REMAINING IDX 2 publicintGET STATS UNDER REPLICATED IDX 3 publicintGET STATS CORRUPT BLOCKS IDX 4 publicintGET STATS MISSING BLOCKS IDX 5 安全模式开关操作publicbooleansetSafeMode FSConstants SafeModeActionaction HDFSAPI ClientProtocol 系统管理相关接口 保存FsImage映像 同时将更新同步到EditLog中 要求具有超级权限 并且在安全模式下进行 publicvoidsaveNamespace 持久化文件系统元数据 将Namenode结点上的数据结构写入到指定的文件中 如果指定文件已经存在 则追加到该文件中 metaSave Stringfilename Hadoop集群搭建 1 三台PC机 Linux操作系统各主机对应的ip地址 192 168 1 11ubuntu1192 168 1 12ubuntu2192 168 1 13ubuntu32 Hadoop安装包 http hadoop apache org 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的主机名ubuntu2ubuntu3 Hadoop集群搭建 编辑所有机器的conf hadoop env sh文件 将JAVA HOME变量设置为各自JDK安装的根目录 不同机器可以使用不同的JAVA版本 4 其它机器上的配置 Hadoop集群搭建 三 Hadoop运行 1 格式化分布式文件系统 Hadoop集群搭建 2 启动Hadoop守护进程 3 停止Hadoop守护进程 HDFS实验 观察数据块在Datanode上的分布 三个Datanode 文件副本个数为2 文件f zip的数据块分布情况 关掉一个Datanode时数据块分布情况 此时文件仍然可用 关掉两个Datanode时数据块的分布情况 此时文件不可用 重新启动另外两个Datanode时数据块分布情况 1 云计算 主要内容 4 云GIS内涵与特征 5 Esri的云计算 2 Google的云计算 3 开源云平台Hadoop 4 云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

温馨提示

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

最新文档

评论

0/150

提交评论