云计算考试重点.pdf
1)云计算是对(并行计算,分布式计算和网格计算)技术的发展与应用。2)云计算特点的包括(超大规模,虚拟化,高可靠性,通用性,高可伸缩性,按需服务,极其廉价)。3)按照服务类型,云计算大致可分为(将基础设施作为服务IaaS、将平台作为服务 PaaS 和将软件作为服务 SaaS)4)IaaS 计算实现机制中,系统管理模块的核心功能是(负载均衡)5)云计算体系结构包括(物理资源层、资源池、管理中间件和 SOA 构建层),最关键的两层是(资源池和管理中间件),其中的(管理中间件)负责资源管理、任务管理、用户管理和安全管理等工作。6)Google云计算平台技术架构包括(Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务 Chubby、分布式结构化数据表 Bigtable、分布式存储系统 Megastore 以及分布式监控系统 Dapper)7)Google 文件系统 GFS 分块默认的块大小是(64M)8)Google 文件系统(GFS)分成固定大小的块,每个块都用一个对应的(索引号(Index)。9)Google 文件系统(GFS)提供给应用程序的访问接口是(专用接口)10)GFS 的假设和目标是(硬件出错正常;主要负载时流数据读写,需要存储大尺寸的文件)11)Google 文件系统(GFS)通过(冗余)方式提高可靠性12)Google 文件系统(GFS)中每个数据块默认是在(3)个数据块服务器上冗余13)Google 文件系统(GFS)中客户端直接从(数据块服务器)角色完成数据存取。14)文件体统(GFS)中主服务器节点 任务是(存储元数据、文件系统目录管理和与数据块服务器进行周期性通信)15)在主服务器节点存储中,采用日志进行容错的是(命名空间、Chunk 与文件名的映射)16)在数据块服务器容错中,每个 Block 对应32Bit 的校验码17)GFS 采用用中心服务器模式的原因包括(可以方便增加数据块服务器;不存在元数据的一致性问题;方便进行负载均衡)18)Google 不缓存数据的原因是(OFS 的文件操作大部门是流式读写;维护缓存与实际数据之间的一致性太复杂;不存在大量的重复读写;数据块服务器上的数据存取使用本地文件系统;)19)GFS 中主服务器节点存储的元数据包括(命名空间;Chunk 与文件名间的映射表、Chunk 副本的位置信息)单一主服务器(Master)解决性能瓶颈的方法是(减少其在数据存储中的参与减少其在数据存储中的参与程度程度、不适用不适用 MasterMaster 读取数据读取数据、客户端缓存元数据、采用大尺寸的数据块客户端缓存元数据、采用大尺寸的数据块)21)Google 云计算技术和开源框架Hadoop 如何对应的22)(MapReduce)是 Google 提出的用于处理海量数据的并行编程模式和大规模数据集的并行运算的软件架构。简答题云计算和网格计算的异同?MapReduce 与传统的分布式程序设计相比有何优点?另外一个文档上有答案MapReduce 执行流程图(1)MapReduce 函数首先把输入文件分成M 块(2)这些分派执行程序有一个程序比较特别,他是主程序 Master。剩下的执行程序都是作为20)Master 分派工作的 Worker(工作机).总共有 M 个 Map 任务和 R 个 Reduce 任务需要分派,Master 选择空闲的 Worker来分配这些 Map 或 Reduce 任务。(3)一被分配的 Map 任务的 Worker读取并处理相关的输入块。(4)这些缓存到内存的中间结果将被定时写到本地硬盘,这些数据通过分区函数分层R 个区(5)当 Master 通知 Reduce 的 Worker关于key,value对的位置时,它调用远程控制过程,从 Map Worker的本地硬盘上读取缓冲的中间数据。(6)Reduce Worker根据每一个唯一的中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce 函数.(7)当所有 Map 任务和 Reduce 任务都完成时,Master 激活用户程序。设计题试绘制 GFS 体系结构的示意图,并对工作流程进行简要说明另外一个文档上面有答案GFS 将整个系统的节点分为三类角色:Client(客户端)、Master(主服务器)和 Chunk Server(数据块服务器)。Client 提供给应用程序的访问接口,它是一组专用接口。Master 是 GFS 的管理节点,在逻辑上有一个,它保存系统的元数据,负责整个文件系统的管理。Chunk Server负责具体的存储工作。数据以文件的形式存储在Chunk Server 上,Chunk Server 的个数可以有多个,它的数量直接决定了GFS 的规模。客户端在访问 GFS 是,首先访问 Master 节点,获取与之进行交互的 Chunk Server 信息,然后直接访问这些 Chunk Server,完成数据的存取工作。Google MapduceGoogle Mapduce 案例分析(字符串排序)案例分析(字符串排序)(1)对原始的数据进行分割(Split),得到 N 个不同的数据分块(2)对每一个数据块都启动一个 Map 进行处理,采用桶排序的方法,每个 Map 按照首字母将字符串分配到不同的桶中(3)对于 Map 之后得到的中间结果,启动 26 个 Reduce.按照字母将 Map 中不同桶中的字符串集合放置到相应的Reduce 中进行处理。具体的说:就是将首字母 a 的字符串放到 Reduce1 中处理,首字母b 的放到 Reduce2 中处理依此类推。每个Reduce 对于其中字符串进行排序,结果直接输出。由于Map 过程中已经做到了首字母有序,Reduce 输出结果就是最终的排序结果.简答题简答题HDFS 的五个守护进程HDFS 体系结构图HDFS 集群是一个 NameNode 和很多个 DataNode 组成。NameNode 主控服务器,管理文件系统的元数据,负责维护文件系统的命名空间并协调客户端对文件的访问,记录命名空间内的任何改动或命名空间本身的属性改动.DataNode存储实际的数据,负责他们所在物理节点上存储管理,HDFS 开放文件系统的命名空间以便让用户以文件的形式存储数据。客户端联系NameNode 以获取文件的元数据,而真正的文件I/O 操作是直接和 DataNode进行交互的。SecondaryNameNodeSecondaryNameNode 它不是 namenode 的冗余守护进程,而是提供周期检查点和清理任务。JobTrackerJobTracker 负责调度 DataNodeDataNode 上的工作。每个 DataNodeDataNode 有一个 TaskTrackerTaskTracker,它们执行实际工作。JobTrackerJobTracker和 TaskTrackerTaskTracker采用主-从形式,JobTrackerJobTracker跨 DataNodeDataNode分 发 工 作,而 TaskTrackerTaskTracker 执 行 任 务.JobTrackerJobTracker 还 检 查 请 求 的 工 作,如 果 一个 DataNodeDataNode 由于某种原因失败,JobTrackerJobTracker 会重新调度以前的任务.这个是重点(五个函数)但是不确定怎么考?Hadoop MapReduceHadoop MapReduce 五种函数五种函数(实际是两个函数,实际是两个函数,另外三个是阶段另外三个是阶段),每种函数的每种函数的含义含义输入分片(输入分片(input splitinput split)阶段:)阶段:在进行 map 计算之前,mapreduce 会根据输入文件计算输入分片(input split),每个输入分片(input split)针对一个 map 任务,输入分片(input split)存储的并非数据本身,而是一个分片长度和一个记录数据的位置的数组,输入分片(input split)往往和 hdfs 的 block(块)关系很密切;mapmap 阶段阶段:就是程序员编写好的map 函数了,因此 map 函数效率相对好控制,而且一般map 操作都是本地化操作也就是在数据存储节点上进行;CombineCombine(连接)函数(连接)函数:将 Map 任务输出的中间结果集中有相同的key 值的多个组合成一个key,list对。Combine 在执行完 Map 函数后紧接着执行,很多情况下直接使用Reduce 函数,Combine 能减少中间结果的数量,从而减少数据传输的网络流量。PartitionPartition(分区)函数:(分区)函数:Combine 之后,把产生的中间结果按key 的范围划分成 R(R 是预先定义的 Reduce 任务的个数)份,划分的时候通常使用Hash 函数,如 Hash(key)mod R,这样可以保证某一范围内的key,一定是一个Reduce 任务来处理,可以简化 Reduce 的过程。reducereduce 阶段阶段:和 map 函数一样也是程序员编写的,最终结果是存储在hdfs 上的。SQL 和 NoSQL 数据库的对比(1)数据模型,SQL 数据库对数据有严格的约束,包括数据之间的关系和数据的完整性。(2)数据处理:传统的SQL 数据库满足 CAP 原则(一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance))的 C 和 A,所以在 P 方面很弱,进而导致传统数据库在可扩展性方面,面临很多问题。NoSQL 数据库满足 CAP 原则的 A和 P,所以在 C 比较弱,进而使得斐关系型数据库无法满足ACID 要求.(3)接口层区别:SQL 数据库都是以 SQL 语言对数据库进行访问的,目前所有的SQL 数据都支持 SQL 语言;NoSQL 数据库对数据的操作都是通过一些API 实现的,支持的查询功能很简单,并且不同数据库有不同的API。(4)优势和劣势:SQL 数据库具有很高的一致性,在 ACID 方面能力非常强移植性很高,但在可用性方面能力较弱。NoSQL 数据库最大的优点是非常高的可扩展性,具有很强的并发处理能力,但缺乏数据一致性保证。另外,由于分布在多个服务器行,所以跨表、跨服查询很难。Google Reduce 编程模型(简单描述如何实现)一个 Map 函数就是对一部分原始数据进行制定的操作。每个 Map 函数都针对不同的原始数据,因此 Map 和 Map 之间是互相独立的,这是的他们可以充分并发。一个 Reduce 操作就是对每个 Map 所产生的一部分中间结果进行合并操作,每个Reduce 所处理的 Map 中间结果是互相不交叉的,所有 Reduce产生的最终结果经过简单的连接就形成了完整的结果集,因此 Reduce 也可以在并发环境下之下执行开发者需编写开发者需编写两个主要函数两个主要函数Map:(in_key,in_value)(keyj,valuej)|j=1kReduce:(key,value1,valuem)(key,final_value)MapMap 输入参数输入参数:in_key 和 in_value,它指明了 Map 需要处理的原始数据MapMap 输出结果输出结果:一组key,value对,这是经过 Map 操作后所产生的中间结果ReduceReduce 输入参数输入参数:(key,value1,valuem)ReduceReduce 工作工作:对这些对应相同 key的 value 值进行归并处理ReduceReduce 输出结果输出结果:(key,final_value),所有 Reduce 的结果并在一起就是最终结果