云计算考试复习资料.docx
《云计算考试复习资料.docx》由会员分享,可在线阅读,更多相关《云计算考试复习资料.docx(29页珍藏版)》请在冰豆网上搜索。
云计算考试复习资料
第一讲:
云计算概述
1 什么是云计算?
云计算是一种能够将动态伸缩的虚拟化资源通过互联网以服务的方式提供给用户的计
算模式。
根据云提供的服务类型,可以划分为基础设施云、平台云、应用云。
根据云的服
务方式,可以划分为公有云、私有云、混合云。
2 云计算的优势?
优化产业布局
– 成本关键由硬件成本转为电力成本、散热成本
– 分散的、高能耗模式转变为集中的、资源友好的模式
– 自给自足资源作坊转变为规模效应的工业化资源工厂
推进专业分工
– 专业的大型云计算厂商
– 实力雄厚的科研技术团队推动硬件技术革新
– 具有丰富知识和经验的维护管理团队和配套软件
– 产业链中的新产业契机
提升资源利用率
– 更加高效的解决常规业务
– 更好的应对突发任务或事件
– 更加平衡的资源分配和负载
减少初期投资
– 更少的 IT 基础设施投入
– 更少的软件投入
– 更少的人力投入
– 更短的培训周期
– 更灵活的转型支持
降低管理开销
– 服务化管理
– 无需自己建立维护管理团队
– 随需应变的解决方案
– 知识、经验更加丰富的管理队伍
– 通过业务模块的可配置提高系统的灵活性
3 云计算的动因?
芯片与硬件技术
– 硬件能力的激增、成本的大幅下降,使得独立运作的公司集中客观的硬件能力实现规
模效益成为可能
资源虚拟化
– 资源在云端,需要被统一的管理
– 异构硬件、兼容性问题
– 虚拟化技术
应用需求
面向服务的架构 SOA
– 开放式数据模型
– 统一通信标准
– 更加丰富的服务
– 更加松散耦合、灵活的 IT 架构
– 转变了人们对 IT 系统的认识
软件即服务 SaaS
– 转变了人们使用服务的方式
– 使得终端用户熟悉服务的交互模式
– 改变了 IT 界的商业模式
– 实力雄厚的大公司负责基础设施,小企业通过创新挖掘充满潜力的市场
– “长尾理论”
互联网技术
– 基础设施
– 多种接入方式
– 更加广阔的覆盖
– 带宽和可靠性得到大幅提升
– 使得 IT 新模式的稳定性、可靠性、安全性、可用性、灵活性、可管理性、自动化程
度、节能环保等得到保障
Web2.0 技术
– 用户从信息的获得者变成信息的贡献者
– 博客(微博)、内容聚合、百科全书(Wiki)、社交网络、对等网络(P2P)
– 富互联网应用(Rich Internet Application)成为网络应用发展的趋势
– 改变了人们的生活方式
– 为云计算提出了内在需求
4 查找资料:
业界主流的云计算产品
典型的云计算应用
补充:
1 云计算特征是什么?
硬件和软件都是资源
资源可以根据需要进行动态扩展与配置
按用计费、无需管理
物理上分布式共享,逻辑上以单一整体呈现
2 云计算的发展历程?
超级计算机
集群计算
分布式计算
网格计算
效用计算
云计算
第二讲:
云服务
1 云服务的基本层次?
云计算的基本层次分为三层,依次为 IaaS, PaaS 和 SaaS。
IaaS(架构即服务),提供了核心计算资源和网络架构的服务。
基础设施栈包括操作系
统访问、防火墙、路由和负载平衡。
示例产品:
Flexiscale 和 Amazon EC2。
PaaS(平台即服务)提供平台给系统管理员和开发人员,令其可以基于平台构建、测
试及部署定制应用程序。
也降低了管理系统的成本。
典型服务包括
Storage、Database、Scalability。
示例产品:
Google App Engine、AWS:
S3、Microsoft
Azure。
SaaS(软件即服务)通过 Internet 提供软件的模式,用户向提供商租用基于 Web 的
软件来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件。
示例产品:
Google Docs、CRM、Financial Planning、Human Resources、Word
Processing 等。
2 IaaS 的基本功能?
资源抽象
资源监控
负载管理
数据管理
资源部署
安全管理
计费管理
3 PaaS 的基本功能?
开发平台
运行时环境
运营环境
补充:
1 IaaS 服务流程?
规划阶段->部署阶段->运行阶段
2 PaaS 实现步骤?
总体设计
开发平台
运行环境
运营环境
3 云平台上开发应用的优势?
– 提供高级编程接口,简单易用,缩短编程人员上手时间
– 应用的开发与运行基于相同的平台,兼容性问题较少
– 开发者无需考虑应用的可伸缩性、服务容量问题
– 平台层的运营管理功能还能够帮助开发人员对应用进行监控和计费
4 应用层的特征?
– 网络访问模式
– 租用付费
– 高度整合
第四讲:
虚拟化
1 虚拟化的概念?
虚拟化是表示计算机资源的抽象方法,通过虚拟化可以用与访问抽象前资源一致的方
法来访问抽象后的资源。
这种资源的抽象方法并不受实现、地理位置或底层资源的物理配
置限制。
(wiki)
2 服务器虚拟化的特性?
多实例
– 一个物理服务器上可以运行多个虚拟服务器
– 支持多个客户操作系统
– 物理系统资源以可控的方式分配给虚拟机
隔离性
– 虚拟机之间完全隔离
– 一个虚拟机的崩溃不会对其他虚拟机造成影响
– 虚拟机之间的数据相对独立,不会泄露
– 虚拟机之间如果需要互相访问,方式等同于独立物理服务器之间的互相访问
封装性
– 硬件无关
– 对外表现为单一的逻辑实体
– 一个虚拟机可以方便的在不同硬件之间复制、移动
– 将不同访问方式的硬件封装成统一标准化的虚拟硬件设备,保证了虚拟机的兼容性
高性能
– 可通过扩展获得“无限”的性能
– 虚拟化抽象层需要一定管理开销
3 服务器虚拟化的关键技术?
计算虚拟化
–CPU 虚拟化
–计算负载的动态分配
–能耗管理
存储虚拟化
–内存虚拟化
–磁盘存储动态分配
设备与 I/O 虚拟化
–软件方式实现
–统一、标准化的接口
–操作指令转译
实时迁移技术
–将整个虚拟机的运行状态完整、快速地从原宿主机的硬件平台转移到新的宿主机硬件
平台。
4 创建虚拟化解决方案的步骤?
创建虚拟化解决方案
部署虚拟化解决方案
管理虚拟化解决方案
5 什么是数据中心?
数据中心是一整套复杂的设施,它不仅仅包括计算机系统和其它与之配套的设备(例
如
通信和存储系统),还包含冗余的数据通信连接、环境控制设备、监控设置以及各种安全装
置。
6 虚拟化与云计算的关系?
虚拟化技术以及各种计算机科学概念,如效用计算、SOA 等,的发展和商业实现打开
了
云计算的大门,而云计算本质上说应该就是虚拟化服务。
从虚拟化和云计算的过程,我们
实
现了跨系统的资源调度,将大量的计算机资源组成资源池,用于动态地创建高度虚拟化的
资
源提供给用户,从而最终实现应用、数据、IT 资源以服务的方式通过网络提供给客户。
可
以
说云计算是虚拟化的最高境界,虚拟化是云计算的底层结构。
补充:
1 虚拟化的典型类型?
基础设施虚拟化
系统虚拟化
软件虚拟化
2 虚拟化的目的
对象脱离原有环境
在计算机上被表示
通过计算机控制按需获取
第五讲:
OpenStack
1 AWS 模式是什么,有什么优点?
Amazon Web Services(AWS)
模式:
用户应用使用 IaaS 基础 IT 资源,将 PaaS 和通用服务作为应用架构中的组件来
构建自己的服务
特点:
通过 Web Service 接口开放数据和功能;一切以服务实现;通过 SOA 框架使系
统
达到松耦合。
2 IaaS 模式核心需求有哪些?
云拥有者:
配置和操作基础架构;服务的提供者:
注册云服务、查看服务的使用情况;
查看服务的计算情况;服务的使用者:
创建和存储自定义的镜像、启动监控和终止实例。
3 Openstack 都包含哪些核心项目,作用是什么?
Nova(计算)、Swift(对象存储)、Glance(镜像)、Keystone(身份)、Dashboard(自
助门户)、Quantum(网络连接)、Cinder(块存储服务)。
4 镜像和实例有什么区别和联系?
镜像:
固定搭配
实例:
固定搭配的一个实例
镜像的存在便于对大量实例的管理,如归类、缩短选择时间、计费等
5 Nova 有哪些核心模块,工作过程是什么?
Nova 是一套控制器,用于为单个用户或使用群组启动虚拟机实例。
将提供预制的镜像
或是为用户创建的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。
Nova-api:
负责接收和响应终端用户有关虚拟机计算和云硬盘存储的请求,是整个
Nova
的入口。
Nova-compute:
主要的执行守护进程,职责是基于各种虚拟化技术实现创建和终止虚
拟机。
整合了 CPU/内存、存储和网络三类资源部署管理虚拟机,实现计算能力的交付。
Nova-volumn:
职责是创建、挂载和卸载持久化的磁盘虚拟机。
Nova-network:
职责是实现网络资源池的管理。
Nova-schedule:
职责是调度虚拟机在哪个物理宿主机上部署。
AMQP 消息中间件:
实现服务接口与实现解耦以及子系统之间的通信。
通过 HTTP 协议,
采用 REST 风格实现接口定义和响应,发送执行消息指令至队列,由具体的订阅实现模块执
行指令。
6 Keystone 权限控制过程是什么?
User:
用户,就是一个人的账号
Credential:
用来证明用户身份的证据
Authentication:
鉴权,也即对用户身份鉴别的一个过程。
Token:
令牌。
对用户鉴权完毕之后,Keystone 会为用户颁发一个令牌,这样用户在请
求其他服务的时候,只需要亮出自己的令牌即可,而不需要发送自己的密钥。
当然以防仿
冒
令牌,令牌是有时限的。
Service:
服务,Keystone 提供了系统能够提供的服务目录,例如 Nova, Glance, Swift 等。
Endpoint:
直译为端点,其实指的是要访问的服务的地址。
如果细分的话,又可以进
一
步分为对外提供服务的地址,管理地址等。
Role:
即赋予该用户的权限,Openstack 提供的是一个多租户环境,在 Openstack 中租
户对应到项目(Project)。
一个用户可以同时属于多个不同的项目,当然在不同的项目中可以
充当不同的角色,也即拥有不同的权限。
关键的两点:
1)User 从 Keystone 获取令牌以及服务列表;2)User 访问服务时,亮出
自
己的令牌,相关的服务向 Keystone 求证令牌的合法性。
7 Quantum 原理是什么?
实现网络连接管理,解决网络虚拟化问题。
8 Swift 的核心概念有哪些?
– Object:
对象。
基本的存储实体,所有数据按照对象进行存储。
– Container:
容器。
对象的装载体,组织数据的方式,存储的隔间,类似于文件夹,但
不能嵌套,object 存储于 container 中。
– Account:
账户。
权限单位,account 拥有若干 container。
9 Swift 的组件有哪些,都有什么作用?
Proxy Server:
提供 Swift API 的服务器进程,负责 Swift 其余组件间的相互通信
Storage Server:
提供了磁盘设备上的存储服务
ConsistencyServer:
查找并解决由数据损坏和硬件故障引起的错误,包含
Auditor、Updater 和 Replicator
Ring:
用于记录存储对象和物理位置间的映射关系
10 Ring 算法思想是什么?
一致性哈希算法:
Swift 利用一致性哈希算法构建了一个冗余的可扩展的分布式对象存
储集群。
Swift 采用一致性哈希的主要目的是在改变集群的 Node 数量时,能够尽可能少地
改变已存在 Key 和 Node 的映射关系。
该算法的思路分为以下三个步骤。
首先计算每个
节点的哈希值,并将其分配到一个 0~2^32 的圆环区间上。
其次使用相同方法计算存储对象
的哈希值,也将其分配到这个圆环上。
随后从数据映射到的位置开始顺时针查找,将数据
保存到找到的第一个节点上。
如果超过 2^32 仍然找不到节点,就会保存到第一个节点上。
Replica。
Zone:
把集群的 Node 分配到每个 Zone 中,其中同一个 Partition 的 Replica 不能同时
放
在同一个 Node 上或同一个 Zone 内。
Weight:
未来添加存储能力更大的 Node 时,分配到更多的 Partition。
11 Quorum 协议的内容是什么?
在分布式存储系统中用于控制一致性级别的一种策略。
N = numbers of nodes that store data(同一份数据的 Replica 的份数)
W = number of successful writes in a put request(更新一个数据对象时需要确保成功更新
的份数)
R = number of successful reads in a get request(读取数据时需要读取的 Replica 的份数)
W+R>NW>N/2(常用:
N=3、w=R=2)
第六讲:
云存储
1 大规模数据存储面临的新问题与挑战
– 成本问题
– 容量问题
– 可靠问题
– 使用问题
2 GFS 体系结构
Client:
GFS 提供给应用程序的库文件形式访问接口;Master:
GFS 的管理节点,逻辑
上
只有一个,保存系统元数据;ChunkServer:
GFS 的数据存储节点,大小固定(64MB)。
采
用中心服务器模式,不缓存数据,在用户态下实现,提供专用的访问接口。
Master 节点任务:
存储元数据;文件系统目录管理与加锁;与 ChunkServer 进行周期
性
通信;数据块创建、复制与负载均衡;垃圾回收;陈旧数据块删除。
3 GFS 的容错机制
Master 容错
– 三类元数据:
命名空间(目录结构)、Chunk 与文件名的映射以及 Chunk 副本的位置信
息。
– 前两类通过日志提供容错,Chunk 副本信息存储于 Chunk Server,Master 出现故障时
可恢复。
Chunk Server 容错
– 每个 Chunk 有多个存储副本(通常是 3 个),分别存储于不通的服务器上。
– 每个 Chunk 又划分为若干 Block(64KB),每个 Block 对应一个 32bit 的校验码,保证数
据正确(若某个 Block 错误,则转移至其他 Chunk 副本)。
4 Paxos 协议
分布式环境下保持一致性的协议。
– 决议(value)只有在被 proposers提出后才能被批准,未经批准的决议称为“提案
(proposal)”。
– 在一次 Paxos 算法的执行实例中,只批准(chosen)一个 value。
– learners 只能获得被批准(chosen)的 value。
5 Chubby 锁机制
Chubby 是 Google 为解决分布式一致性问题而设计的提供粗粒度锁服务的文件系统。
Chubby 系统本质上就是一个分布式的、存储大量小文件的文件系统。
Chubby 中的锁就是
文
件,创建文件就是进行加锁操作。
用户通过打开、关闭和存取文件,获取共享锁或独占锁,
并且通过通信机制,向用户发送更新信息。
6 Chubby 的通信协议
操作的允许授权是通过限时的、倒计时“租期”系统来处理的。
7 Bigtable 数据结构
– 分布式多维映射表
– 通过行关键字+列关键字+时间戳进行索引
– Bigtable 对存储的数据不做解析,看做字符串,具体数据结构实现需要用户自行处理
– 每行数据有一个可排序的关键字和任意列项;
– 可将多个列归并为一组,称为“族”,同一个族的数据被压缩在一起保存。
– 逻辑上的表被划分成若干子表,每个子表存储了 table 的一部分行(每个子表由多个
SSTable 文件组成,SSTable 文件存储在 GFS 上)
8 Bigtable 优化机制
局部性群组
– 根据需要,将原本不存储在一起的数据,以列族为单位存储至单独的子表。
布隆过滤器
– 判断某个元素是否隶属于集合。
合并压缩
– 合并压缩操作读取多个 SSTable,创建一个新的 SSTable 来保持其中的最新数据。
9 云存储应用的特点
通用的设备支持;数据同步与共享;任意格式/大小文件;免费+付费。
第七讲:
MapReduce 算法原理
1 Mapreduce 算法的架构
每个 mapreduce 任务都被初始化为一个 job ,每个 job 分为两个阶段,实现了 Map
和 Reduce 两个功能:
Map :
把一个函数应用于集合中所有成员,然后返回一个基于这个处理的结果集。
Reduce:
对结果集进行分类和归纳。
reduce 生成最后结果。
程序由一个 jar 文件和一个 xml 文件组成,jar 包含程序代码,xml 包含程序配置
2 Wordcount 算例
自动分割文本。
分割后的每一对 进行用户定义的 map 处理,生成新的对。
系统自动对输出结果集归拢排序,传给 reduce。
4
3 Hadoop 执行 MR 的过程
master 节点运行 jobTracker 实例,接收客户端 job 请求,一个 job 是对一个数据集的处
理,slave 节点运行 TaskTracker 实例,一个 task 是一次 map 或者 reduce 处理过程。
2
操作。
客户端设定配置之后,交
job ,将 job 数据发送到 jobTracker 的文件系统中,
Mapreduce 库会把所输入文件分割成 M 块,放到不同的 datanote 上。
JobTracker 将 job 放入队列进行调度,并把 jar 和配置文件放到共享空间
Hadoop 有一个机器内进程间操作通信的机制,taskTracker 周期性告诉 jobTracker 工作
状
态,如果空,job 给 task 分配任务,开一个进程处理。
程序被传送到各个数据所在的 HDFS 的 datanote 上运行,mapper 被输送到数据节
6
点上进行计算,中间结果被输送到 reducer 上进行计算,Reducer 将计算结果分布式保存
到 HDFS。
当所有 map 和 reduce 任务完成时,master 会唤醒用户程序,通知任务完成,再取执
行新的任务。
4 MR 算法执行过程中的数据流转过程
用户文件上传到 HDFS,由 mapreduce 库切割分别存储到 datanote 上
以行号,文本形式传入 map 中,经过自定义 map 处理产生 对,构成中间结
果集缓存在本地内存中。
reducer 接到 master 的收集中间结果集任务后,通过远程调用读取中间结果,并将其排
序,key 相同的 value 进行合并处理化简。
最终结果写入到 GFS 文件系统中
补充:
1 什么是 MapReduce?
一个软件架构,是一种处理海量数据的并行编程模式;
用于大规模数据集(通常大于 1TB)的并行运算;
MapReduce 实现了 Map 和 Reduce 两个功能:
– Map 把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集
– Reduce 对结果集进行分类和归纳
– Map()和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻
2 MapReduce 的优化?
– 任务备份机制
– 本地处理
– 跳过有问题的记录
3 MapReduce 中的术语?
job:
MapReduce 的一整个过程
task:
在一个 job 中,每个 mapper 和每个 reducer 做的事情
task attempt:
运行一个 task。
主节点运行 JobTracker 实例,它接受来自客户端的工作要求。
JobTracker 的主要功能
包括:
作业控制:
在 hadoop 中每个应用程序被表示成一个作业,每个作业又被分成多个
任务,JobTracker 的作业控制模块则负责作业的分解和状态监控。
资源管理。
taskTracker 实例运行在 slave 节点。
TaskTracker 的功能包括:
汇报心跳:
Tracker 周期性将所有节点上各种信息通过心跳机制汇报给 JobTracker。
执行命令:
JobTracker 会给 TaskTracker 下达各种命令,主要包括:
启动任务
(LaunchTaskAction)、提交任务(CommitTaskAction)、杀死任务(KillTaskAction)、杀死作业
(KillJobAction)和重新初始化(TaskTrackerReinitAction)。
第八讲:
MapReduce 算法应用
1 Mapreduce 算法设计思想
任务的分解与结果的汇总。
2 运用 mapreduce 算法解决实际问题
词频:
WordCount 基础上 map 函数中,加入<*,num> 键值对,一次 mapreduce 过程得到每
个词出现的个数及总数
inverted index (若干文本文件- > 倒排索引结果):
map 输出:
<{token,fileID},one>
combiner 输出:
<{token,fileID},sum >
reduce输出:
=num >
计算文本相似度:
— 进行倒排索引
—计算两两文章对的相似性
map:
同一个词对应的文章链表中,两两文章构成一组<{article1,article2},num>
reduce:
进行收集
—统计文章相似度
3 算法调优
给 shuffle 过程尽可能多的内存空间;Map 和 Reduce 函数尽量少用内存;运行 Map 和
Reduce 任务的 JVM 的内存尽量大;Map 端尽量估算 Map 输入的大小,减少溢出写磁盘的
次数;Reduce 端的中间数据尽可能的多驻留在内存;增加 Hadoop 的文件缓冲区。