云计算复习.docx
《云计算复习.docx》由会员分享,可在线阅读,更多相关《云计算复习.docx(16页珍藏版)》请在冰豆网上搜索。
云计算复习
第一章:
大数据与云计算
1.何为大数据
海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。
2.大数据具有4V+1C的特征
(1)数据量大:
存储的数据量巨大,PB级是常态
(2)多样:
数据的来源及格式多样
(3)快速:
数据增长速度快
(4)价值密度低:
需要对大量的数据进行处理,挖掘其潜在的价值。
(5)复杂度:
对数据的处理和分析的难度大
3.什么是云计算
长定义:
云计算是一种商业模型。
它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能根据需要获取计算力、存储空间和信息服务。
短定义:
云计算是通过网络按需提供可动态伸缩的廉价计算服务。
4.云计算是并行计算、分布式计算和网络计算的发展。
5.云计算特点:
(1)超大规模
(2)虚拟化(3)高可靠性(4)通用性
(5)高可伸缩性(6)按需服务(7)极其廉价
6.云计算按照服务类型大致可分为三类
(1)将基础设施作为服务。
(IaaS)
(2)将平台作为服务。
(PaaS)(3)将软件作为服务(SaaS)
7.云计算实现机制
云计算技术体系结构分为四层:
物理资源层、资源池层、管理中间件层和SOA构建层
8.云计算优势
(1)更低的硬件和网络成本
(2)更低的管理成本和电力成本(3)更高的资源利用率
第二章:
Google云计算原理与应用
1.Google文件系统是一个大型的分布式文件系统。
它为Google云计算提供海量存储,处于所有核心技术的底层。
2.GFS将整个系统的节点分为三类角色:
客户端、主服务器、数据块服务器
3.GFS特点
(1)采用中心服务器模式
(2)不缓存数据(3)在用户状态下实现(4)只提供专用接口
4.在服务器失效经常发生的情况下,云计算数据存储技术需要采用容错机制和冗余机制来保证数据的可用性。
5.Master容错:
Master上保存了GFS文件系统的三种元数据。
(1)命名空间,也就是整个文件系统的目录结构
(2)Chunk与文件名的映射表
(3)Chunk副本的位置信息,每一个Chunk默认有三个副本
6.ChunkServer容错:
Chunk的默认大小是64MB。
7.系统管理技术
(1)大规模集群安装技术
(2)故障检测技术(3)节点动态加入技术(4)节能技术
8.MapReduce:
在编程时,开发者必须实现两个主要的函数Map和Reduce
(1)一个Map函数就是对一部分原始数据进行指定的操作
(2)一个Reduce操作就是对每个Map所产生的中间结果进行合并操作
9.实现机制
(1)MapReduce函数首先把输入文件分成M块
(2)分派的执行程序中有一个主控程序Master
(3)一个被分配了Map任务的Worker读取并处理相关的输入块
(4)缓冲到内存的中间结果将被定时写到本地硬盘,这些数据通过分区函数分成R个区。
(5)当Master通知执行Reduce的Worker关于中间对的位置时,它调用远程过程,从MapWorker的本地硬盘上读取缓冲的中间数据。
(6)ReduceWorker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数
(7)当所有的Map任务和Reduce任务都完成的时候,Master激活用户程序。
10.容错机制MapReduce通过重新执行失效的地方来实现容错。
(1)Master失效:
Master会周期性地设置检查点,并导出Master的数据。
一旦某个任务失效,系统就从最近的一个检查点恢复并重新执行。
由于只有一个Master在运行,如果Master失效了,则只能终止整个MapReduce程序的运行并重新开始。
(2)Worker失效:
Master会周期性地给Worker发送ping命令,如果没有Worker的应答,则Master认为Worker失效,终止对这个Worker的任务调度,把失效Worker的任务调度到其他Worker上重新执行。
11.P20案例分析和实习wordcount
12.BigTable设计动机
(1)需要存储的数据种类繁多
(2)海量的服务请求
(3)商用数据库无法满足Google的需求
13.BigTable设计目标
(1)广泛的适用性
(2)很强的可扩展性(3)高可用性(4)简单性
14.Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字、一个列关键字、一个时间戳进行索引。
数据类型:
string(row:
string,column:
string,time:
int64)->string
15.行:
可以是任意的字符串,大小不能超过64KB。
表中的数据都是根据行关键字进行排序的,排序使用的是词典序。
倒排好处:
(1)同一地址域的网页会被存储在表中的连续为止,有利于用户查找和分析。
(2)倒排便于数据压缩,可以大幅提高压缩率。
16.列:
将其组织成所谓的列族。
语法规则:
族名:
限定词。
族名必须有意义,限定词则可以任意选定。
族同时也是Bigtable中访问控制的基本单元
17.时间戳:
Google的很多服务比如网页检索和用户的个性化设置等都需要保存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。
64位整型数,具体的赋值方式可以用户自行定义。
18.系统架构三个云计算组件:
WorkQueue:
分布式的任务调度器,负责故障处理及监控。
GFS:
保存资表数据及日志。
Chubby:
负责元数据库存储及主服务器的选择。
19.Chubby的作用
(1)选取并保证同一时间内只有一个主服务器。
(2)获取字表的位置信息。
(3)保存BigTable的模式信息及访问控制列表。
20.BigTable主要有三部分组成:
客户端程序库、一个主服务器、多个子表服务器。
21.主服务器的作用
(1)新子表分配
(2)子表服务器状态监控(3)子服务器之间的负载均衡
22.子表服务器:
每个子表服务器上仅保存一个日志文件。
ssTable是最小存储单位。
23.bigtable数据读和写操作有很大的差异
24.性能优化:
(1)局部性群组
(2)压缩(3)布隆过滤器
第三章:
Amazon云计算AWS
1.EC2基本架构主要包括Amazon机器映像、实例、存储模块等组成部分,并能与S3等其他Amazon云计算服务结合使用。
(1)Amazon机器映像:
包含了操作系统、服务器程序、应用程序等软件配置的模板。
(2)EC2中实例由AMI启动,像传统的主机一样提供服务,同一个AMI可以用于创建具有不同计算和存储能力的实例。
(3)EBS存储卷的设计与物理硬盘相似,其大小由用户设定,目前提供的容量从1GB到1TB不等。
快照功能是EBS的特色功能之一,用于在S3中存储AmazonEBS卷的时间点副本。
2.EC2关键技术
(1)地理区域和可用区域
(2)EC2的通信机制:
公共IP地址、私有IP地址、弹性IP地址
(3)弹性负载平衡(4)监控服务(5)自动缩放(6)服务管理控制台
3.EC2的安全及容错机制
(1)安全组技术:
安全组是一组规则,用户利用这些规则来决定哪些网络流量会被实例接受,其他则全部拒绝。
当用户的实例被创建时,如果没有指定安全组,则系统自动将该实例分配给一个默认组。
默认组只接受组内成员的消息,拒绝其他消息。
当一个组的规则改变后,改变的规则自动适用于组中所有的成员。
SSH是目前对网络上传输的数据进行加密的一种很可靠的协议,当用户创建一个密钥对时,密钥对的名称(KeyPairName)和公钥(PublicKey)会被存储在EC2中
(2)容错机制:
使用弹性IP地址。
弹性IP地址和用户账号绑定而不是和某个特定的实例绑定。
当系统正在使用的实例出现故障时,用户只需要将弹性IP地址通过网络地址转换NAT转换为新实例所对应的私有IP地址。
通过弹性IP地址改变映射关系总可以保证有实例可用
4.简单存储服务(S3)构架在Dynamo之上,用于提供任意类型文件的临时或永久性存储。
S3的总体设计目标是可靠、易用及低成本。
5.桶和对象
(1)桶:
桶适用于存储对象的容器,作用类似文件夹,但桶不可以被嵌套。
(2)对象:
S3的基本存储单元,主要由数据和元数据组成。
6.S3对桶和对象的基本操作包括:
Get,Put,List,Delete,Head
7.S3的安全措施
(1)S3向用户提供包括身份认证和访问控制列表的双重安全机制。
(2)身份认证:
S3使用基于HMAC-SHA1数字签名方式。
HMAC-SHA1基于加密hash函数和共享秘钥的消息认证协议,维护数据的完整性、可靠性、安全性。
(3)控制访问列表:
是S3提供的可供用户自行定义的访问控制策略列表。
访问控制策略(ACP)提供的五种访问权限:
ACL不具有继承性。
S3三大类型的授权用户:
所有者、个人授权用户、组授权用户
8.非关系型数据库与传统关系数据库的比较
(1)关系型数据库:
优点:
具有高一致性,在ACID方面很强,移植性很高。
缺点:
可扩展性方面能力较弱。
(2)非关系型数据库:
优点:
具有很高的可扩展性,很好的并发处理能力。
缺点:
缺乏数据一致性保证,处理事务性问题能力较弱,难以处理跨表,跨服务器的查询。
9.SimpleDB:
域、条目、属性、值
(1)每个属性大小不能超过1KB
(2)存储的数据范围极其有限(3)只保存指向某个文件位置的指针。
10.DynamoDB
(1)以表为基本单位
(2)取消了对表中数据大小的限制
(3)允许用户选择弱一致性或强一致性
(4)采用固态硬盘,根据用户设定的读/写流量限制预设来确定数据分布的硬盘数量。
11.SimpleDB和DynamoDB的比较
(1)SimpleDB:
限制了每张表的大小,更适合于小规模复杂的工作。
自动对所有属性进行索引,提供了更加强大的查询功能。
(2)DynamoDB:
支持自动将数据和负载分布到多个服务器上,并未限制存储在单个表中数据量的大小,适用于较大规模负载的工作。
第四章:
微软云计算WindowsAzure
1.微软的WindowsAzure属于PaaS模式,一般面向软件开发商。
2.当前版本WindowsAzure平台包括四个部分:
(1)WindowsAzure
(2)SQLAzure(3)WindowsAzureAppFabric(4)WindowsAzureMarketplace
3.WindowsAzure是一个服务平台,用户利用该平台,通过互联网访问微软数据中心运行Windows应用程序和存储应用程序数据,这些应用程序可以向用户提供服务。
WindowsAzure提供了托管的、可扩展的、按需应用的计算和存储资源,同时还提供了云平台管理和动态分配资源的控制手段。
4.WindowsAzure的最新版本包括五个部分:
(1)计算服务
(2)存储服务(3)Fabric控制器(4)内容分发网络CDN(5)WindowsAzureConnect
5.计算服务:
为在Azure平台中运行的应用提供支持。
三种实例:
(1)WebRole
(2)WorkerRole(3)VMRole
6.存储服务:
主要用来存储二进制和结构化的数据。
依靠微软数据中心,允许用户在云端存储应用程序数据。
应用程序可以存储任何数量的数据,并且可以存储任意长的时间,用户可以在任何时间、任何地方访问自己的数据。
四种主要的数据存储结构:
(1)Blob
(2)Table(3)Queue(4)File
7.全局命名空间:
分成三部分:
账户名、分区名、对象名
8.体系架构:
WAS产品系统由存储域和位置服务构成。
(1)存储域层次结构:
文件流、分区层、前端
9.双复制引擎:
实现数据高可用=>
(1)域内复制
(2)域间复制
域内复制专门为硬件失效而设计,在大规模系统内这类失效比较普遍。
域间复制提供跨地域冗余来防止地域灾难,这种情况一般不多出现
10.文件流层:
包括流管理器和区块节点。
11.分区层提供:
(1)不同存储对象类型的数据模型。
(2)不同类型对象处理的逻辑和语义
(3)大规模扩展的对象命名空间。
(4)跨多个可用分区服务器访问对象的负载平衡。
(5)访问对象的事务排序和强一致性。
12.分区层主要体系结构模块:
(1)分区管理区
(2)分区服务器(3)锁服务
13.分区管理器可执行三种操作:
(1)负载平衡
(2)划分(3)合并
14.WindowsAzureConnect:
在WindowsAzure应用和本地运行的机器之间建立一个基于IPsec协议的连接,使两者更容易结合起来使用。
15.WindowsAzureCDN:
用户第一次访问Blob时,CDN存储了Blob的副本,存放的地点与用户在地理位置上比较靠近。
当这个Blob被第二次访问时,它的内容将来自于缓存,而不是来自于离它位置较远的原始数据。
16.Fabric控制器:
是一个分布式应用,拥有计算机、交换机、负载均衡器等各种资源。
Fabric控制器控制所有运行的应用。
17.微软云关系数据库SQLAzure
(1)SQLAzure:
SQLAzure是微软的云中关系型数据库。
SQLAzure数据库简化了多数据库的供应和部署。
SQLAzure还为用户提供了内置的高可用性和容错能力。
(2)提供了关系型数据库存储服务:
包含三部分:
1)SQLAzure数据库2)SQLAzure报表服务3)SQLAzure数据同步
18.SQLAzure数据库:
SQLAzure的一种云服务,提供了核心的SQLServer数据库功能。
(1)支持TDS和Transact-SQL(T-SQL)。
提供的是一个基于云的数据库管理系统。
(2)每个SQLAzure账户都拥有一个或多个逻辑服务器;每台服务器都拥有多个SQLAzure数据库;用户可以自由地使用SQLAzure数据库。
(3)SQLAzure和SQLServer的差别
19.报表服务:
基于SQLServer报表服务,实现SQLAzure报表服务。
(1)两个使用场景:
一、SQLAzure报表创建的报表可以发布到某一个门户上,云端用户可以访问这个门户的报表,也可以通过URL地址直接访问报表;二、ISV(独立的软件开发商)能够嵌入发布到SQLAzure报表门户的报表。
(2)SQLAzure报表服务与SQLAzure数据库中的数据相互作用。
(3)SQLAzureReporting与SSRS的报表格式是相同的,都使用微软定义的RDL。
(4)SQLAzureReporting并没有实现本地情况下SSRS提供的所有的功能。
20.数据同步:
为了提高存储数据的访问性能,同时确保网络发生故障时应用仍然能够访问数据库,需要在本地拥有SQLAzure的数据库副本,微软使用了SQLAzure数据同步技术。
技术包括两方面:
(1)SQLServer数据库与SQLAzure数据库之间的数据同步
(2)SQLAzure数据库之间的同步
可以同步整个数据库,也可以只同步有更新的数据库表格。
21.SQLAzure和SQLServer对比
第五章:
Hadoop:
主流开源云架构
1.分布式计算:
处理过程可大致分为三步:
(1)本地计算(Map):
cSlave0最好是处理存于本机硬盘上的file0,而不是将file1从cSlave1调过来(通过网络)再处理file1,这就是所谓的“本地计算”。
(2)洗牌(Shuffle):
规定将Key值相同的KV对,通过网络发往同一台机器。
(3)合并再计算(Reduce)
2.合并在计算
(1)第一步,每台机器将各自KV对中的Value连接成一个链表
(2)第二步,各台机器可对进行业务处理,称此过程为Reduce。
(3)第三部,将得出的结果再存于DFS。
3.无论是Map、Shuffle还是Reduce,甚至是存储结果,在每个阶段都是并行的,整个过程则构成一个有向无环图(DAG)。
4.冗余存储与冗余计算
(1)存储:
引入新机器cSlave2和cSlave3,将存于cSlave0的file0同样存储于cSlave2,存于cSlave1的file1同样存一份于cSlave3。
(2)计算:
cSlave0~3的计算任务cMaster1选中先结束的那台机器的计算结果,并停止另一台机器里还在计算的进程
统一由cMaster1指派。
(3)作用:
通过冗余存储,不仅提高了分布式存储可靠性,还提高了分布式计算的可靠性。
5.Hadoop至少应当包含分布式存储和分布式计算两个模块。
6.HadoopCommon:
(1)降低了Hadoop设计的复杂性
(2)减少了其他模块之间的耦合性
(3)增强了Hadoop的健壮性
功能
(1)提供公用API和程序员编程接口
(2)本地Hadoop库
(3)超级用户superuser
(4)服务级别认证
(5)HTTP认证
7.HDFS
(1)定位:
提供高容错、高扩展、高可靠的分布式存储服务,并提供服务访问接口。
(2)体系架构
1)HDFS采用master/slave体系来构建分布式存储服务
提高了HDFS的可扩展性又简化了架构设计
2)HDFS里将文件分块存储
优化存储颗粒度
3)namenode统一管理所有slave机器datanode存储空间,datanode以块为单位存储实际的数据
4)真正的文件I/O操作时客户端直接和datanode交互
(3)NameNode主控制服务器和DataNode
(4)HDFS典型拓扑
1)一般拓扑:
只有单个NameNode节点,使用SecondaryNameNode或BackupNode节点实时获取NameNode元数据信息,备份元数据。
2)商用拓扑:
有两个NameNode节点,并使用ZooKeeper实现NameNode节点间的热切换。
(5)HDFS内部特性P186
(6)HDFS对外功能P189
8.分布式操作系统Yarn
9.Hadoop2.0安全机制
第六章:
Hadoop2.0大家族
1.组件分类
(1)HDFS:
分布式存储
(2)Yarn:
分布式操作系统(3)MapReduce:
分布式处理
(4)ZooKeeper:
分布式锁(5)Hbase:
分布式数据库(6)Oozie:
工作流引擎
(7)PigHive:
高层语言(8)Mahout:
机器学习库(9)Flume:
数据传输工具
2.部署步骤
(1)Apache社区版分布式组件部署步骤:
社区版部署须解决版本兼容与本地权限文件的问题,烦琐易错;
(2)商业版部署步骤
3.ZooKeeper
4.Hbase
5.Pig
6.Hive
7.Oozie
8.Flume:
核心思想是数据流
8.Mahout
、
第七章:
虚拟化技术
(1)虚拟化技术的核心思想是利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。
在虚拟资源上可以安装和部署多个虚拟机,实现多用户共享物理资源。
(2)虚拟数据中心特点:
高速、扁平、虚拟化
(3)数据中心的虚拟化是通过服务器虚拟化、存储虚拟化和网络虚拟化实现的。
(4)服务器虚拟化:
将一个或多个物理服务器虚拟成多个逻辑上的服务器
根据实现方式服务器虚拟化分为:
寄居虚拟化、裸机虚拟化
服务虚拟化的底层实现:
CPU虚拟化、内存虚拟化、I/O设备虚拟化
CPU:
内存:
I/O设备:
虚拟机迁移:
迁移步骤:
预迁移、预定资源、预复制、停机复制、提交、启动
内存的迁移:
迁移方案的优劣势:
网络资源的迁移:
存储设备的迁移:
隔离技术:
虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术。
内存隔离:
管理虚拟存储器的控制线路、管理物理存储器的控制线路、
负责将虚拟地址映射为物理地址、提供硬件机制的内存访问授权
虚拟机监控器使用分段和分页机制对自身的物理内存进行保护。
网络隔离:
确保把有害的攻击隔离,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网间数据的安全交换。
(5)存储虚拟化:
把分布的异构存储设备统一为一个或几个大的存储池
(6)网络虚拟化:
在底层物理网络和网络用户之间增加一个抽象层
数据中心网络虚拟化分为核心层、接入层和虚拟机网络虚拟化三个方面
核心层:
主要指的是数据中心核心网络设备的虚拟化。
接入层虚拟化:
可以实现数据中心接入层的分级设计。
根据数据中心的走线要求,接入层交换机要求能够支持各种灵活的部署方式和新的以太网技术。
虚拟层:
扩展虚拟数据中心中交换机和虚拟网卡的功能
(7)桌面虚拟化:
利用虚拟化技术将用户桌面的镜像文件存放在数据中心。
桌面虚拟化技术面临的问题:
集中管理问题、集中存储问题、虚拟化产品缺乏统一标准、网络负载压力
第八章:
OpenStack开源虚拟化平台
1.OpenStack有两个主要部分:
Nova和Swift,通过仪表板管理,通过Web界面提供资源
2.OpenStack是什么
OpenStack是一个管理计算、存储和网络资源的数据中心云计算开放平台,通过一个仪表板,为管理员提供了所有的管理控制,同时通过Web界面为用户提供资源。
2.OpenStack主要管理计算、存储、网络三部分资源
3.OpenStack主要服务:
计算服务(Nova)、存储服务(Swift)、镜像服务(Glance)
(身份认证服务网络管理服务存储管理服务仪表盘)
4.计算服务Nova
Nova是OpenStack云中的计算组织控制器,处理实例生命周期的所有活动,是一个负责管理计算资源、网络、认证、所需可扩展性的平台。
Nova不具有虚拟化能力,通过LibvitAPI来与被支持的Hypervisors交互。
Nova组件:
APIServer、MessageQueue、ComputeWorker、
NetworkController、VolumeWorkers、Scheduler
Nova-Scheduler实现的一些基本调度算法:
随机算法、可用域算法、简单算法
Libvirt:
Nova通过Libvirt标准接口来实现对Hypervisor的管理
虚拟云实现的三部曲:
虚拟化技术实现—>虚拟机管理—>集群资源管理(云管理)
Libvirt的主要目标是为各种虚拟化工具提供一套方便、可靠的编程接口,用一种单一的方式管理多种不同的虚拟化提供方式。
Libvirt主要支持的功能:
虚拟机管理、远程机器支持、存储管理、网络接口管理、虚拟NAT和基于路由的网络。
Libvirt:
管理位于同一节点上的应用程序和域。
管理位于不同节点上的应用程序和域。
Nova中的RabbitMQ解析:
OpenStackNova采用RabbitMQ作为信息交换中枢
RabbitMQ是一种处理消息验证、消息转换和消息路由的架构模式。
RabbitMQ:
功能性、时效性、安全可靠性、SLA方面
AMQP
AMQP目标:
实现端到端的信息通信
AMQP实现通信的因素:
“消息”
AMQP的两个核心要素—交换器与队列,通过消息的绑定与转发机制实现信息通信。
交换器分为:
持久交换器、临