1、第一章:大数据与云计算1.何为大数据?海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。2.大数据具有4V+1C的特征(1)数据量大:存储的数据量巨大,PB级是常态(2)多样:数据的来源及格式多样(3)快速:数据增长速度快(4)价值密度低:需要对大量的数据进行处理,挖掘其潜在的价值。(5)复杂度:对数据的处理和分析的难度大3.什么是云计算?长定义:云计算是一种商业模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能根据需要获取计算力、存储空间和信息服务。短定义:云计算是通过网络按需提供可动态伸缩的廉价计算服务。4
2、.云计算是并行计算、分布式计算和网络计算的发展。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云计算提供
3、海量存储,处于所有核心技术的底层。2.GFS将整个系统的节点分为三类角色:客户端、主服务器、数据块服务器3.GFS特点(1)采用中心服务器模式(2)不缓存数据(3)在用户状态下实现(4)只提供专用接口4.在服务器失效经常发生的情况下,云计算数据存储技术需要采用容错机制和冗余机制来保证数据的可用性。5.Master容错:Master上保存了GFS文件系统的三种元数据。(1)命名空间,也就是整个文件系统的目录结构(2)Chunk与文件名的映射表(3)Chunk副本的位置信息,每一个Chunk默认有三个副本6.Chunk Server容错:Chunk的默认大小是64MB。7.系统管理技术(1)大规模
4、集群安装技术(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关于中间对的位置时
5、,它调用远程过程,从Map Worker的本地硬盘上读取缓冲的中间数据。(6)Reduce Worker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数(7)当所有的Map任务和Reduce任务都完成的时候,Master激活用户程序。10. 容错机制 MapReduce通过重新执行失效的地方来实现容错。(1)Master失效:Master会周期性地设置检查点,并导出Master的数据。一旦某个任务失效,系统就从最近的一个检查点恢复并重新执行。由于只有一个Master在运行,如果Master失效了,则只能终止整个MapRed
6、uce程序的运行并重新开始。(2)Worker失效:Master会周期性地给Worker发送ping命令,如果没有Worker的应答,则Master认为Worker失效,终止对这个Worker的任务调度,把失效Worker的任务调度到其他Worker上重新执行。11. P20 案例分析 和 实习 wordcount12.BigTable设计动机(1)需要存储的数据种类繁多(2)海量的服务请求(3)商用数据库无法满足Google的需求13.BigTable设计目标(1)广泛的适用性(2)很强的可扩展性(3)高可用性(4)简单性14.Bigtable是一个分布式多维映射表,表中的数据通过一个行关键
7、字、一个列关键字、一个时间戳进行索引。数据类型:string (row:string,column:string,time:int64)-string15.行:可以是任意的字符串,大小不能超过64KB。表中的数据都是根据行关键字进行排序的,排序使用的是词典序。 倒排好处:(1)同一地址域的网页会被存储在表中的连续为止,有利于用户查找和分析。(2)倒排便于数据压缩,可以大幅提高压缩率。16.列:将其组织成所谓的列族。语法规则:族名:限定词。族名必须有意义,限定词则可以任意选定。族同时也是Bigtable中访问控制的基本单元17.时间戳:Google的很多服务比如网页检索和用户的个性化设置等都需要
8、保存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。64位整型数,具体的赋值方式可以用户自行定义。18.系统架构 三个云计算组件:WorkQueue:分布式的任务调度器,负责故障处理及监控。GFS:保存资表数据及日志。Chubby:负责元数据库存储及主服务器的选择。19.Chubby的作用(1)选取并保证同一时间内只有一个主服务器。(2)获取字表的位置信息。(3)保存BigTable的模式信息及访问控制列表。20. BigTable主要有三部分组成:客户端程序库、一个主服务器、多个子表服务器。21.主服务器的作用(1)新子表分配(2)子表服务器状态监控(3)子服务器之间的负载均衡22.
9、子表服务器:每个子表服务器上仅保存一个日志文件。ssTable是最小存储单位。23.bigtable数据读和写操作有很大的差异24.性能优化:(1)局部性群组(2)压缩(3)布隆过滤器第三章:Amazon云计算AWS1.EC2基本架构主要包括Amazon机器映像、实例、存储模块等组成部分,并能与S3等其他Amazon云计算服务结合使用。(1)Amazon机器映像:包含了操作系统、服务器程序、应用程序等软件配置的模板。(2)EC2中实例由AMI启动,像传统的主机一样提供服务,同一个AMI可以用于创建具有不同计算和存储能力的实例。(3)EBS存储卷的设计与物理硬盘相似,其大小由用户设定,目前提供的
10、容量从1GB到1TB不等。快照功能是EBS的特色功能之一,用于在S3中存储Amazon EBS卷的时间点副本。2.EC2关键技术(1)地理区域和可用区域(2)EC2的通信机制:公共IP地址、私有IP地址、弹性IP地址(3)弹性负载平衡(4)监控服务(5)自动缩放(6)服务管理控制台3.EC2的安全及容错机制(1)安全组技术:安全组是一组规则,用户利用这些规则来决定哪些网络流量会被实例接受,其他则全部拒绝。当用户的实例被创建时,如果没有指定安全组,则系统自动将该实例分配给一个默认组。默认组只接受组内成员的消息,拒绝其他消息。当一个组的规则改变后,改变的规则自动适用于组中所有的成员。 SSH是目前
11、对网络上传输的数据进行加密的一种很可靠的协议,当用户创建一个密钥对时,密钥对的名称(Key Pair Name)和公钥(Public Key)会被存储在EC2中(2)容错机制:使用弹性IP地址。弹性IP地址和用户账号绑定而不是和某个特定的实例绑定。当系统正在使用的实例出现故障时,用户只需要将弹性IP地址通过网络地址转换NAT转换为新实例所对应的私有IP地址。通过弹性IP地址改变映射关系总可以保证有实例可用4.简单存储服务(S3)构架在Dynamo之上,用于提供任意类型文件的临时或永久性存储。S3的总体设计目标是可靠、易用及低成本。5.桶和对象(1)桶:桶适用于存储对象的容器,作用类似文件夹,但
12、桶不可以被嵌套。(2)对象:S3的基本存储单元,主要由数据和元数据组成。6.S3对桶和对象的基本操作包括:Get,Put,List,Delete,Head7.S3的安全措施(1)S3向用户提供包括 身份认证 和 访问控制列表 的双重安全机制。(2)身份认证:S3使用基于HMAC-SHA1数字签名方式。HMAC-SHA1基于加密hash函数和共享秘钥的消息认证协议,维护数据的完整性、可靠性、安全性。(3)控制访问列表:是S3提供的可供用户自行定义的访问控制策略列表。 访问控制策略(ACP)提供的五种访问权限:ACL不具有继承性。 S3三大类型的授权用户:所有者、个人授权用户、组授权用户8.非关系
13、型数据库与传统关系数据库的比较(1)关系型数据库:优点:具有高一致性,在ACID方面很强,移植性很高。缺点:可扩展性方面能力较弱。(2)非关系型数据库:优点:具有很高的可扩展性,很好的并发处理能力。缺点:缺乏数据一致性保证,处理事务性问题能力较弱,难以处理跨表,跨服务器的查询。9. SimpleDB:域、条目、属性、值(1)每个属性大小不能超过1KB (2)存储的数据范围极其有限(3)只保存指向某个文件位置的指针。10.DynamoDB(1)以表为基本单位(2)取消了对表中数据大小的限制(3)允许用户选择弱一致性或强一致性(4)采用固态硬盘,根据用户设定的读/写流量限制预设来确定数据分布的硬盘
14、数量。11.SimpleDB和DynamoDB的比较(1)SimpleDB:限制了每张表的大小,更适合于小规模复杂的工作。自动对所有属性进行索引,提供了更加强大的查询功能。(2)DynamoDB:支持自动将数据和负载分布到多个服务器上,并未限制存储在单个表中数据量的大小,适用于较大规模负载的工作。第四章:微软云计算Windows Azure1. 微软的Windows Azure 属于PaaS模式,一般面向软件开发商。2. 当前版本Windows Azure 平台包括四个部分:(1)Windows Azure(2)SQL Azure(3)Windows Azure AppFabric (4)Wi
15、ndows Azure Marketplace3. Windows Azure是一个服务平台,用户利用该平台,通过互联网访问微软数据中心运行Windows应用程序和存储应用程序数据,这些应用程序可以向用户提供服务。Windows Azure提供了托管的、可扩展的、按需应用的计算和存储资源,同时还提供了云平台管理和动态分配资源的控制手段。4.Windows Azure的最新版本包括五个部分:(1)计算服务(2)存储服务(3)Fabric控制器(4)内容分发网络CDN(5)Windows Azure Connect5.计算服务:为在Azure平台中运行的应用提供支持。 三种实例:(1)Web Ro
16、le (2)Worker Role (3)VM Role6.存储服务:主要用来存储二进制和结构化的数据。依靠微软数据中心,允许用户在云端存储应用程序数据。 应用程序可以存储任何数量的数据,并且可以存储任意长的时间,用户可以在任何时间、任何地方访问自己的数据。 四种主要的数据存储结构:(1)Blob(2)Table(3)Queue(4)File7. 全局命名空间:分成三部分:账户名、分区名、对象名8. 体系架构:WAS产品系统由存储域和位置服务构成。(1)存储域层次结构:文件流、分区层、前端9. 双复制引擎:实现数据高可用=(1)域内复制(2)域间复制域内复制专门为硬件失效而设计,在大规模系统内
17、这类失效比较普遍。域间复制提供跨地域冗余来防止地域灾难,这种情况一般不多出现10. 文件流层:包括流管理器和区块节点。11. 分区层提供:(1)不同存储对象类型的数据模型。(2)不同类型对象处理的逻辑和语义(3)大规模扩展的对象命名空间。(4)跨多个可用分区服务器访问对象的负载平衡。(5)访问对象的事务排序和强一致性。12. 分区层主要体系结构模块:(1)分区管理区(2)分区服务器(3)锁服务13. 分区管理器可执行三种操作:(1)负载平衡(2)划分(3)合并14. Windows Azure Connect:在Windows Azure应用和本地运行的机器之间建立一个基于IPsec协议的连接
18、,使两者更容易结合起来使用。15.Windows Azure CDN:用户第一次访问Blob时,CDN存储了Blob的副本,存放的地点与用户在地理位置上比较靠近。当这个Blob被第二次访问时,它的内容将来自于缓存,而不是来自于离它位置较远的原始数据。16.Fabric控制器:是一个分布式应用,拥有计算机、交换机、负载均衡器等各种资源。Fabric控制器控制所有运行的应用。17.微软云关系数据库SQL Azure(1)SQL Azure:SQL Azure是微软的云中关系型数据库。SQL Azure数据库简化了多数据库的供应和部署。SQL Azure还为用户提供了内置的高可用性和容错能力。(2)
19、提供了关系型数据库存储服务:包含三部分:1)SQL Azure数据库 2)SQL Azure报表服务 3)SQL Azure数据同步18. SQL Azure数据库:SQL Azure的一种云服务,提供了核心的SQL Server数据库功能。(1)支持TDS和Transact-SQL(T-SQL)。提供的是一个基于云的数据库管理系统。(2)每个SQL Azure账户都拥有一个或多个逻辑服务器;每台服务器都拥有多个SQL Azure数据库;用户可以自由地使用SQL Azure数据库。(3)SQL Azure 和 SQL Server的差别19. 报表服务:基于SQL Server报表服务,实现S
20、QL Azure报表服务。(1)两个使用场景:一、SQL Azure报表创建的报表可以发布到某一个门户上,云端用户可以访问这个门户的报表,也可以通过URL地址直接访问报表;二、ISV(独立的软件开发商)能够嵌入发布到SQL Azure报表门户的报表。(2)SQL Azure报表服务与SQL Azure数据库中的数据相互作用。(3)SQL Azure Reporting与SSRS的报表格式是相同的,都使用微软定义的RDL。(4)SQL Azure Reporting并没有实现本地情况下SSRS提供的所有的功能。20.数据同步:为了提高存储数据的访问性能,同时确保网络发生故障时应用仍然能够访问数据
21、库,需要在本地拥有SQL Azure的数据库副本,微软使用了SQL Azure数据同步技术。 技术包括两方面:(1)SQL Server数据库与SQL Azure数据库之间的数据同步(2)SQL Azure数据库之间的同步可以同步整个数据库,也可以只同步有更新的数据库表格。21. SQL Azure和SQL Server对比第五章:Hadoop :主流开源云架构1.分布式计算:处理过程可大致分为三步:(1)本地计算(Map): cSlave0最好是处理存于本机硬盘上的file0,而不是将file1从cSlave1调过来(通过网络)再处理file1,这就是所谓的“本地计算”。(2)洗牌(Shuf
22、fle):规定将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)
23、计算:cSlave03的计算任务cMaster1选中先结束的那台机器的计算结果,并停止另一台机器里还在计算的进程统一由cMaster1指派。(3)作用:通过冗余存储,不仅提高了分布式存储可靠性,还提高了分布式计算的可靠性。5. Hadoop至少应当包含分布式存储和分布式计算两个模块。6. Hadoop Common:(1)降低了Hadoop设计的复杂性(2)减少了其他模块之间的耦合性(3)增强了Hadoop的健壮性 功能(1)提供公用API和程序员编程接口(2)本地Hadoop库(3)超级用户superuser(4)服务级别认证(5)HTTP认证7. HDFS(1)定位:提供高容错、高扩展、高
24、可靠的分布式存储服务,并提供服务访问接口。(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元数据信息,备份
25、元数据。2)商用拓扑:有两个NameNode节点,并使用ZooKeeper实现NameNode节点间的热切换。(5)HDFS内部特性P186(6)HDFS对外功能 P1898.分布式操作系统Yarn9.Hadoop2.0安全机制第六章:Hadoop 2.0大家族1.组件分类(1)HDFS:分布式存储(2)Yarn:分布式操作系统(3)MapReduce:分布式处理(4)ZooKeeper:分布式锁(5)Hbase:分布式数据库(6)Oozie:工作流引擎(7)Pig Hive:高层语言(8)Mahout:机器学习库 (9)Flume:数据传输工具2.部署步骤(1)Apache社区版分布式组件部
26、署步骤:社区版部署须解决版本兼容与本地权限文件的问题,烦琐易错;(2)商业版部署步骤3.ZooKeeper4.Hbase5.Pig6.Hive7.Oozie8.Flume:核心思想是数据流8.Mahout、第七章:虚拟化技术(1)虚拟化技术的核心思想是利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。在虚拟资源上可以安装和部署多个虚拟机,实现多用户共享物理资源。(2)虚拟数据中心特点:高速、扁平、虚拟化(3)数据中心的虚拟化是通过服务器虚拟化、存储虚拟化和网络虚拟化实现的。(4)服务器虚拟化:将一个或多个物理服务器虚拟成多个逻辑上的服务器根据实现方式服务器虚拟化分为:寄居虚拟化、裸
27、机虚拟化服务虚拟化的底层实现:CPU虚拟化、内存虚拟化、I/O设备虚拟化CPU:内存:I/O设备:虚拟机迁移:迁移步骤:预迁移、预定资源、预复制、停机复制、提交、启动内存的迁移:迁移方案的优劣势:网络资源的迁移:存储设备的迁移:隔离技术:虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术。内存隔离:管理虚拟存储器的控制线路、管理物理存储器的控制线路、负责将虚拟地址映射为物理地址、提供硬件机制的内存访问授权虚拟机监控器使用分段和分页机制对自身的物理内存进行保护。网络隔离:确保把有害的攻击隔离,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网间数据的安全
28、交换。(5)存储虚拟化:把分布的异构存储设备统一为一个或几个大的存储池(6)网络虚拟化:在底层物理网络和网络用户之间增加一个抽象层数据中心网络虚拟化分为核心层、接入层和虚拟机网络虚拟化三个方面核心层:主要指的是数据中心核心网络设备的虚拟化。接入层虚拟化:可以实现数据中心接入层的分级设计。根据数据中心的走线要求,接入层交换机要求能够支持各种灵活的部署方式和新的以太网技术。虚拟层:扩展虚拟数据中心中交换机和虚拟网卡的功能(7)桌面虚拟化:利用虚拟化技术将用户桌面的镜像文件存放在数据中心。桌面虚拟化技术面临的问题:集中管理问题、集中存储问题、虚拟化产品缺乏统一标准、网络负载压力第八章:OpenSta
29、ck开源虚拟化平台1. OpenStack有两个主要部分:Nova和Swift,通过仪表板管理,通过Web界面提供资源2. OpenStack是什么?OpenStack是一个管理计算、存储和网络资源的数据中心云计算开放平台,通过一个仪表板,为管理员提供了所有的管理控制,同时通过Web界面为用户提供资源。2. OpenStack 主要管理 计算、存储、网络 三部分资源3. OpenStack主要服务:计算服务(Nova)、存储服务(Swift)、镜像服务(Glance)(身份认证服务 网络管理服务 存储管理服务 仪表盘)4. 计算服务NovaNova是OpenStack云中的计算组织控制器,处理
30、实例生命周期的所有活动,是一个负责管理计算资源、网络、认证、所需可扩展性的平台。Nova不具有虚拟化能力,通过Libvit API来与被支持的Hypervisors交互。Nova组件:API Server、 Message Queue 、Compute Worker 、Network Controller、Volume Workers、 SchedulerNova-Scheduler实现的一些基本调度算法:随机算法、可用域算法、简单算法Libvirt:Nova通过Libvirt标准接口来实现对Hypervisor的管理虚拟云实现的三部曲:虚拟化技术实现虚拟机管理集群资源管理(云管理)Libvi
31、rt的主要目标是为各种虚拟化工具提供一套方便、可靠的编程接口,用一种单一的方式管理多种不同的虚拟化提供方式。Libvirt主要支持的功能:虚拟机管理、远程机器支持、存储管理、网络接口管理、虚拟NAT和基于路由的网络。Libvirt: 管理位于同一节点上的应用程序和域。管理位于不同节点上的应用程序和域。Nova中的RabbitMQ解析:OpenStack Nova采用RabbitMQ作为信息交换中枢RabbitMQ是一种处理消息验证、消息转换和消息路由的架构模式。RabbitMQ:功能性、时效性、安全可靠性、SLA方面AMQPAMQP目标:实现端到端的信息通信AMQP实现通信的因素:“消息”AM
32、QP的两个核心要素交换器与队列,通过消息的绑定与转发机制实现信息通信。交换器分为:持久交换器、临时交换器、自动删除交换器队列:持久保存、临时驻留、自动删除AMQP的三个关键组件:消息、队列、交换器AMQP三种不同类型的交换器:广播式、直接式、主题式。5. 存储服务 Swift(1)swift是一个可扩展的对象存储系统,提供了强大的扩展性、冗余性、持久性。(2)swift特性高数据持久性、完全对称的系统架构、无限的可扩展性、无单点故障、简单可依赖(3)Swift应用场景网盘类的存储引擎、为Glance存储镜像文件、存储日志文件、数据备份仓库(4)使用OpenStack的认证服务Keystone,
33、目的在于实现统一OpenStack各个项目间的认证管理。(5)Swift组件Ring、Proxy Server、Storage Server、Consistency Servers6. 镜像服务Glance(1)Glance提供了一个虚拟磁盘镜像的目录和存储仓库,并且可以提供对虚拟机镜像的存储和检索。(2)配置形式(3)Glance作用:提供了一系列的REST API,用来管理、查询虚拟机的镜像,它支持多种后端存储介质。(4)Glance组成部分两个主要的组成部分:OpenStack Image Service支持的后端仓储第九章:云计算数据中心1. 云数据中心的特征(1)高设备利用率(2)绿
34、色节能(3)高可用性(4)自动化管理2. 绿色节能技术(1)配电系统:高压直流配电技术 市电直供配电技术(2)空调系统:高温回风空调系统、低能耗加湿系统、自然冷空调系统(3)集装箱数据中心:高密度、模块化、按需快速部署、移动便携缩短送风距离、提高冷通道温度、冷/热通道完全隔离、隔热保温材料、Free Cooling(4)数据中心节能策略和算法研究:功率管理(动态、静态)、降低能耗(关闭/开启、动态电压/频率调整、虚拟机)DVFS、基于虚拟化的节能技术、基于主机关闭/开启(5)新能源的应用:高能效加新能源 谷歌海上数据中心 facebook太阳能数据中心 谷歌风能数据中心(6)典型的绿色节能数据
35、中心PUE:能源利用率,基准是2,比值越接近1,利用率越高雅虎“鸡窝”式数据中心 Facebook数据中心 谷歌比利时数据中心 惠普英国温耶德数据中心 微软都柏林数据中心3.自动化管理:按需分配和收回服务器、存储、网络、应用程序(1)特征:全面的可视性、自动的控制执行、多层次的无缝集成、综合与实时报告、全生命周期支持(2)自动化管理实现阶段:第一阶段:IT服务操作第二阶段:IT服务管理第三阶段:数据中心自动化(3)Facebook自动化管理硬件管理主要关注四个方面的内容:一、固定的生命周期二、事件告警和日志三、远程管理四、策略技术4.容灾备份:容灾备份是通过在异地建立和维护一个备份存储系统,利用地理上的分离来保证系统和数据对灾难性事件的抵御能力(1)容灾系统对灾难的抵抗程度:数据级容灾、应用级容灾(2)等级标准(3)关键技术一、远程镜像技术二、快照技术三、基于IP的SAN的远程数据容灾备份技术四、数据库复制技术(4)云存储在容灾备份中的应用Google的所有在线应用(Gmail Google Calendar, Google Docs, Google Sites)