1国家制造业信息化工程重大项目-------GIS高级教程第7讲GIS与云计算主讲人:刘德儿2国家制造业信息化工程重大项目-------GIS高级教程1、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop3国家制造业信息化工程重大项目-------GIS高级教程1、云计算“云计算”的概念起源于大规模分布式计算技术,是并行计算(ParallelComputing)、分布式计算(DistributedComputing)和网格计算(GridComputing)的发展,是虚拟化(Visualization)、效用计算(UtilityComputing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。4国家制造业信息化工程重大项目-------GIS高级教程CloudComputing45国家制造业信息化工程重大项目-------GIS高级教程1、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop6国家制造业信息化工程重大项目-------GIS高级教程2、Google的云计算平台Google云计算概述为Google特定的网络应用定制的。基于分布式并行集群方式基础架构利用软件方式处理集群中经常发生的节点失效问题Google云计算基础架构模式分布式文件系统(GoogleFileSystem)MapReduce编程模式分布式锁机制Chubby分布式数据库BigTable7国家制造业信息化工程重大项目-------GIS高级教程GFS(GoogleFileSystem)文件系统GFS是一个大型的分布式文件系统,它为Google云计算提供海量存储,并且与Chubby、MapReduce以及Bigtable等技术结合十分紧密,处于所有核心技术的底层。GFS使用廉价的商用机器构建分布式文件系统,将容错的任务交由文件系统来完成,利用软件的方法解决系统可靠性问题,这样可以使得存储的成本成倍下降。如何在频繁的故障中确保数据存储的安全、保证提供不间断的数据存储服务是GFS最核心的问题。GFS的精彩在于它采用了多种方法,从多个角度,使用不同的容错措施来确保整个系统的可靠性。GFS文件系统8国家制造业信息化工程重大项目-------GIS高级教程GFS将整个系统的节点分为三类角色:Client(客户端)是GFS提供给应用程序的访问接口。Master(主服务器)是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理,是GFS文件系统中的“大脑”。ChunkServer(数据块服务器)负责具体的存储工作。数据以文件的形式存储在ChunkServer上,ChunkServer的个数可以有多个,它的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块Chunk(数据块),默认是64MB,每个Chunk都有一个对应的索引号(Index)。为了保证可靠性,每个块被缺省保存3个备份。GFS文件系统9国家制造业信息化工程重大项目-------GIS高级教程10国家制造业信息化工程重大项目-------GIS高级教程客户端在访问GFS时,首先访问Master节点,获取将要与之进行交互的ChunkServers信息,然后直接访问这些ChunkServers完成数据存取。GFS的这种设计方法实现了控制流和数据流的分离。Client与Master之间只有控制流,而无数据流,这样就极大地降低了Master的负载,使之不成为系统性能的一个瓶颈。Client与ChunkServer之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个ChunkServer,从而使得整个系统的I/O高度并行,系统整体性能得到提高。客户端如何访问GFS?11国家制造业信息化工程重大项目-------GIS高级教程MapReduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来构成运算基本单元,用户只需提供自己的Map函数以及Reduce函数即可并行处理海量数据.map函数中,用户的程序将文本中所有出现的单词都按照出现计数1(以Key-Value对的形式)发射到MapReduce给出的一个中间临时空间中.通过MapReduce中间处理过程,将所有相同的单词产生的中间结果分配到同样一个Reduce函数中.而每一个Reduce函数则只需把计数累加在一起即可获得最后结果.MapReduce编程模式12国家制造业信息化工程重大项目-------GIS高级教程BigTableBigTable:基于GFS和Chubby的分布式存储系统对数据进行结构化存储和管理与GFS的联系13国家制造业信息化工程重大项目-------GIS高级教程1、云计算主要内容4、云GIS内涵与特征5、Esri的云计算2、Google的云计算3、开源云平台Hadoop14国家制造业信息化工程重大项目-------GIS高级教程3、开源云平台HadoopHadoop项目简介HDFS体系结构HDFS关键运行机制HadoopVS.Google(分布式文件系统)HadoopAPIHadoop环境搭建15国家制造业信息化工程重大项目-------GIS高级教程云计算相关资源图书馆数字资源国家制造业信息化工程重大项目-------GIS高级教程Hadoop项目简介Apache的解决方案Google云计算MapReduceBigTableGFSChubbyGFS--HDFSMapReduce--HadoopBigTable--HBase17国家制造业信息化工程重大项目-------GIS高级教程Hadoop项目简介HDFS为了做到可靠性(reliability)创建了多份数据块(datablocks)的复制(replicas),并将它们放置在服务器群的计算节点中(computenodes),MapReduce就可以在它们所在的节点上处理这些数据了。18国家制造业信息化工程重大项目-------GIS高级教程HDFS体系结构NameNodeMasterDataNodeChunksever19国家制造业信息化工程重大项目-------GIS高级教程HDFS关键运行机制--保障可靠性的措施一个名字节点和多个数据节点数据复制(冗余机制)--存放的位置(机架感知策略)故障检测--数据节点心跳包(检测是否宕机)块报告(安全模式下检测)数据完整性检测(校验和比较)--名字节点(日志文件,镜像文件)空间回收机制20国家制造业信息化工程重大项目-------GIS高级教程HDFS关键运行机制--写文件流程客户端缓存流水线复制并发写控制流程:1.客户端把数据缓存到本地临时文件夹2.临时文件夹数据超过64M,客户端联系NameNode,NameNode分配DataNode,DataNode依照客户端的位置被排列成一个有着最近物理距离和最小的序列3.与序列的第一个数据服务器建立Socket连接,发送请求头,然后等待回应,依次下传,客户端得到回包,流水线建立成功,4.正式发送数据,以4K为大小传送21国家制造业信息化工程重大项目-------GIS高级教程HDFS关键运行机制--读文件流程客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息尝试从某个数据块对应的一组数据服务器中选出一个,进行连接(选取算法未加入相对位置的考虑)数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止22国家制造业信息化工程重大项目-------GIS高级教程HadoopVS.Google技术架构的比较数据结构化管理组件:Hbase→BigTable并行计算模型:MapReduce→MapReduce分布式文件系统:HDFS→GFSHadoop缺少分布式锁服务ChubbyHBaseMapReduceHDFSBigTableMapReduceGFSHadoop云计算应用ChubbyGoogle云计算应用23国家制造业信息化工程重大项目-------GIS高级教程HadoopVS.GoogleHDFS与GFS比较中心服务器模式的差异GFS:多台物理服务器,选择一台对外服务,损坏时可选择另外一台提供服务HDFS:单一中心服务器模式,存在单点故障原因:Hadoop缺少分布式锁服务24国家制造业信息化工程重大项目-------GIS高级教程HadoopVS.GoogleHDFS与GFS比较子服务器管理模式差异GFS:ChunkServer在Chubby中获取独占锁表示其生存状态,Master通过轮询这些独占锁获知ChunkServer的生存状态HDFS:DataNode通过心跳的方式告知NameNode其生存状态GFS中,Master损坏时,替补服务器可以快速获知ChunkServer的状态HDFS中,NameNode损坏后,NameNode恢复时需要花费一段时间获知DataNode的状态在添加数据存储节点时,GFS的伸缩性较HDFS要好原因:Hadoop缺乏分布式锁服务25国家制造业信息化工程重大项目-------GIS高级教程HadoopVS.GoogleHDFS与GFS比较HDFS具备安全模式获知数据块副本状态,若副本不足,则拷贝副本至安全数目(如3个)GFS不具备安全模式副本损坏处理:API读取副本失败时,Master负责发起拷贝任务26国家制造业信息化工程重大项目-------GIS高级教程HadoopVS.GoogleHDFS与GFS比较HDFS具备空间回收机制文件删除时,仅删除目录结构实际数据的删除在等待一段时间后实施优点:便于恢复文件27国家制造业信息化工程重大项目-------GIS高级教程HDFSAPIHadoopAPI被分成(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用户和用户组信息28国家制造业信息化工程重大项目-------GIS高级教程HDFSAPI--org.apache.hadoop.fs◦org.apache.hadoop.fs.FileSystem(implementsjava.io.Clo