云计算知识点梳理
时间:2023-03-13 05:04:01 | 来源:电子商务
时间:2023-03-13 05:04:01 来源:电子商务
第一章:大数据与云计算
1. 分辨出软件是属于 Iass,Paas, Saas 的哪一类?
将云计算按照服务类型可以分为三类:Iaas,Paas,Saas。
Iaas :将基础设施作为服务,将硬件设备等基础资源封装成服务供用户使用。- Amazon EC2 弹性云计算服务
- Amazon S3 简单存储服务
- Amazon Web Services
- (如上,都是底层的硬件环境,提供的只是基本硬件环境,云计算或者存储所需要的高性能CPU计算和大容量硬盘。)
Paas:将平台作为服务,提供用户应用程序的运行环境。- Google App Engine
- Microsoft Windows Azure
- Amazon MapReduce (仿 Google MapReduce)
- Amazon SimpleDB(仿 Goggle BigTable)
- (如上,都是基本的操作系统平台、引擎、数据库系统,类似于一个空白的 IDE )
Saas:将软件作为服务,只提供某些专门用途的服务供应用调用。- Salesforce online CRM 在线客户关系管理服务
- Amazon FPS 电子商务服务
- Amazon DevPay
- Amazon Alexa Web 网站访问统计服务
- (如上,提供的都是专门的针对某一服务的特定制作的应用解决方案,类似于 App)
2. 云计算的发展历史以及在云计算技术出现之前和之后出现的计算机技术了解。
云计算的概念最先由Google在2006年提出,同年Google,Amazon,Microsoft相继提出云计算服务。
云计算领域的代表:- 国外:Amazon,Google,Microsoft,VMware,Salesforce,Facebook,YouTube,Myspace
- 国内:阿里云、腾讯、七牛云、UCloud
云计算的特点:- 超大规模
- 虚拟化
- 高可靠性
- 通用型
- 高可伸缩性
- 按需服务
- 极其廉价
3. 云计算的发展重点是什么?
云计算的优势:- 在于它的技术特征和规模效应所带来的压倒性的性能价格比优势。
云计算的定义:云计算的主要特征:第二章:Google 云计算原理与应用
1. Google 云计算三大件(GFS,MapReduce,BigTable)的了解。
Google云计算技术包括:- Google文件系统GFS
- 分布式计算编程模型 MapReduce
- 分布式锁服务 Chubby
- 分布式结构化数据表 Bigtable
- 分布式存储系统 Megastore
- 分布式监控系统 Dapper
- 海量数据的交互式分析工具 Dreme
- 内存大数据分析系统 PowerDrill
- Google应用程序引擎
2. GFS 的存储方式是什么?它有什么特点,它是如何提高可靠性的?
Google文件系统( Google File System,GFS)是一个闭源的大型分布式文件系统。它为 Google云计算提供海量存储,处于所有核心技术的底层。
GPS 的系统结构:- GFS将整个系统的节点分为三类角色: Client(客户端)、 Master(主服务器)和 Chunk Server(数据块服务器)。
- Client是GFS提供给应用程序的访问接口,以库文件的形式提供应用程序直接调用这些库函数,并与该库链接在一起。
- Master是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理,是GFS文件系统中的“大脑”。
- Chunk Server负责具体的存储工作。数据以文件的形式存储 在 Chunk Server上, Chunk Server的个数可以有多个,它的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块,默认是64MB,每一块称为一个 Chunk(数据块),每个 Chunk都有一个对应的索引号。
GFS 的存储方式:- 在 GFS 中,数据存储在 Chunk Server(数据块服务器)中,GFS 将文件以块的形式存储在 Chunk Server 上,在 Chunk Server 内部,数据又以文件的形式进行存储。
GFS 的特点:- 采用中心服务器模式:使用 Master 管理分布式文件系统中的所有元文件。便于增加新的 Chunk Server,但是也使得 Master 成为了 GFS 的主要瓶颈。
- 不缓存数据:对于需要频繁读取的数据直接保存到内存中,而不是进行缓存。避免了缓存与实际数据不一致的问题,减少了缓存对系统资源的耗费。提高了操作的效率。
- 在用户态下表现:提高了通用性和稳定性。
- 只提供专用接口:主要面向 Google 自身的应用程序提供服务,所以使用专业接口,可以降低实现难度、对某些应用提供特殊支持、提高效率。
GPS 可靠性的保证:- Master 容错机制:
- 对 GFS 的 命名空间 和 Chunk与文件名的映射表,GFS 通过操作日志来提供容错功能。
- 对于 GFS 的 Chunk副本的位置信息,则一式三份直接保存到各个 Chunk Server 上。(所以,当 Master 故障时,可以迅速恢复这些数据。)
- Chunk Server 容错机制:每一个 Chunk 有多个存储副本,分布存储在不同的 Chunk Server 上。当某个相应的副本受损时, Master 自动将该副本复制到其他 Chunk Server 上。
3. MapReduce 是什么?它如何对中间结果进行合并?
MapReduce 是 Google 提出的一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集的并行运算。其主要思想是 Map(映射) 和 Reduce(化简)。它具有函数式编程语言和矢量编程语言的共性,非常适合于非结构化和结构化的大数据运算环境(搜索、挖掘、分析、机器学习)。
MapReduce 的编程模型:- 一个 Map 函数对应一部分原始数据,对这部分的原始数据进行映射操作。
- Map 之间是互相独立的,使得它们可以充分并行化。
- 一个 Reduce 操作是对每个 Map 所产生的一部分的中间结果进行合并操作。
- Reduce 之间是互相独立的,其产生过的最终结果简单的连接就形成了完成的结果集。
4. BigTable 是并行运算软件架构还是软件模式?它是干什么的?它与其他传统的数据库有什么区别?
BigTable 是一个 Google 开发的基于 GFS 和 Chuuy 的结构化的分布式存储系统。
BigTable 的基本目标:BigTable 的数据模型:- BigTable 是一个分布式多维映射表,表中的数据通过一个行关键字、列关键字以及一个时间戳进行索引。
BigTable 与传统数据库之间的区别:- 从系统架构的角度来说,互联网应用更加看重系统性能以及伸缩性,而传统企业级应用都是比较看重数据完整性和数据安全性。
- 传统数据库是面向行存储的,适合于事务性要求严格场合。但是云计算的数据库 BigTable,HBase 等都是面向列存储的,可以实现高性能的并发读写操作,有较好的水平伸缩性。
第三章:Amazon 云计算 AWS
1. EC2 了解
EC2 是亚马逊的弹性计算云服务,它可以提供大小可调节的计算容量。具有低成本、灵活性、安全性、易用性和容错性的特征。用户可以借助 EC2 在不需要硬件投入的情况下,快速开发和部署应用开发,并方便的配置和管理。
EC2 的基本架构主要包括了
Amazon机器映像(AMI),
实例,
存储模块 等组成部分,并能够与 S3 等其他 Amazon 云计算服务结合使用。
EC2 的关键技术:- 地域区域和可用区域:地域区域是按照实际的地理位置进行划分的,目前亚马逊总共划分了10个地理区域;可用区域是地理区域的一个个更细划分的子集,是根据有没有独立的供电系统和冷却系统进行划分的。
- EC2 的通信机制:EC2 中的 IP 地址总共有三大类:公共 IP 地址、私有 IP 地址 和 弹性 IP 地址。
- 弹性负载平衡:弹性负载平衡可以识别出应用实例的状态,当一个应用运行不佳时,它会自动将流量路由到状态较好的实例资源上,当前者恢复正常后才会重新分配流量到其实例上。
- 监控服务
- 自动缩放:用户可以自定义 EC2 的计算能力。
- 服务管理控制台:它是一种基于 Web 的控制环境,可用于启动、管理 EC2 实例和提供各种管理工具和 API 接口。
EC2 的安全及容错机制:- 安全组技术:在保障用户可以随时更新实例的基础上,对实例能够接受的网络流量进行过滤。
- 使用 SSH 密钥实现用户的登陆服务。
- 使用弹性 IP ,使用户在实例发生故障时可以快速的新实例进行连接。
2. S3 了解
S3 是亚马逊的基于 Dynamo 基础存储架构的简单存储服务,它可以用于提供任意类型文件的临时或永久性存储。S3 具有可靠、易用和低成本的特征。
S3 的基本概念:- 桶:桶是用于存储对象的容器(但是不能像文件夹一样进行嵌套的建立),其名称在整个 Amazon S3 服务器中是唯一的。
- 对象:对象是 S3 的基本存储单元,由 数据 和 元数据 组成。每个对象在桶中有唯一的 键 ,一但建立后便不能再修改。
- 数据可以是任意类型的,但大小受到对象最大容量的限制。
- 元数据是数据内容的附加描述信息,通过 名称-值 集合的方式定义。
S3 的基本操作:- S3 支持对桶和对象的操作,主要包括 Get 、 Put 、 List (对象不支持)、 Delete 、Head(桶不支持)。
S3 的安全措施:- 身份认证
- 访问控制列表:访问控制列表规定了 S3 的三大授权用户(所有者、个人授权用户、组授权用户)
第五章/第六章:Hadoop2.0
1. Hadoop 概念了解
分布式存储:- 使用 客户-服务器模式 ,master 负责进行统一管理各个 slave 的存储空间,slaves 负责存储真实的数据。这样,就能够将多台机器硬盘结合在一起,扩大整机的存储容量。
分布式计算:- Google 在 MapReduce 中给出观点 “移动计算比移动数据更划算”,因为数据量很大(几 T),而计算代码很小(几 K)。
- 分布式移动计算的步骤大致可以分为三步:Map(本地计算)、Shuffle(洗牌)、Reduce(合并再计算)。
- Map:在各个 slave 中分别独立进行本地计算,将生成了 KV 对保存在本地。
- Shuffle:将各个 slave 中 Key 值相同的 KV 对通过网络发往同一台机器。
- Reduce:将每台机器各自的 KV 对中的 value 连成链表,进行合并相加。
冗余存储:- 将 slave1 中的 file1 重复存储在 slave3 中,实现冗余存储,防止一台 slave 宕机导致的数据的丢失。
- 通过冗余存储,不仅提高了分布式存储可靠性,还提高了分布式计算的可靠性。
冗余计算:- 对保存有 file1 的 slave1 和 slave3 同时计算,如果都没有丢失数据,就取最先计算结束的那台机子的计算结果。如果一台丢失,可以使用另一台的。
HDFS 的内部特征:- 冗余备份:HDFS 以块的方式对文件进行存储。文件的所有数据块都会有副本。且文件每次都是一次性写入的,在任何时候都只能拥有一个写用户。
- 副本存放:使用机架感知的策略来改进数据的可靠性、可用性和网络带宽的利用率。
- 副本选择:HDFS 尽量选择离程序最近的副本,从而减少总带宽的消耗和读延时。
- 心跳检测:namenode 周期性地接收每个 datanode 发送来的心跳包和数据块,如果 namenode 没有接收到 datanode 的心跳包,就说明 datanode 已经宕机了,不对它发送任何 IO 请求。
- 数据完整性检测:当客户端接收到文件后,会检测从 datanode 获得的数据块的校验和是否和隐藏文件中的相同。
- 。。。
分布式操作系统 Yarn- Yarn 除了像一般的操作系统功能一样管理整个集群的计算资源(CPU、内存等),还提供用户程序访问系统资源的 API。
第七章:虚拟化技术
1. 虚拟化的特征
虚拟化技术的核心思想是里利用软件或固件管理程序构建虚拟化层,把物理资源映射为虚拟资源。在虚拟资源上可以安装或部署多个虚拟机,实现多用户共享物理资源。数据中心的虚拟化可以实现资源的动态分配和调度,提高现有资源的利用率和服务可靠性;可以提供自动化的服务开通能力,降低运维成本;具有有效的安全机制和可靠性机制,满足公众客户和企业客户的安全需求;同时也可以方便系统升级、迁移和改造。
2. 虚拟化的实现
数据中心的虚拟化是通过
服务器虚拟化 、
存储虚拟化 、
网络虚拟化 来实现的。
- 服务器虚拟化:采用云计算虚拟架构相比于传统单台服务器部署单一应用方式的另外一个好处是,可以充分满足不同应用对系统资源的不同要求,如有的应用只需要一个3.0 GHz CPU,512MB的内存就可以很好的运行,而有的高访问率、高吞吐量的应用则需要2个甚至是4个双核的CPU,8GB的内存才能保证稳定的运行,在传统方式下,往往不可能针对每一种应用来采购服务器,而是用一种或几种标准配置的服务器来统一采购,这样,势必会造成某些应用资源富裕,而另一些应用面临资源紧张的情况,且应用之间不能互相调配资源。采用虚拟架构后,由于每个虚拟机所需使用的系统资源都是由虚拟架构软件统一调配,这种调配可以在虚拟机运行过程中在线的发挥作用,使得任何一个应用都可以有充分保证的资源来稳定运行,同时,该应用在此时用不到的资源又可以被其他更需要资源的应用临时借用过去,最大限度的提高了整体系统的资源利用率。
- 存储虚拟化:区域弹性存储可以根据客户的需求实时划分存储空间,并通过高速局域网络挂载到本区域内任意指定的虚拟机,在虚拟机上可以将磁盘格式化为ext2/ext3/FAT/NTFS等文件系统。在需要的时候,也可以随时将存储卸载,并挂载到其它虚拟机上。
- 网络虚拟化:提供了可选的分布式网络交换功能,可以从一个集中式界面为整个数据中心设置虚拟机网络连接,从而简化网络管理,可在虚拟机跨多个物理机移动时使其保持网络运行时状态,从而实现线内监视和集中式防火墙服务。
第八章:OpenStack 开源虚拟化平台
1. OpenStack 的组件有哪些?
OpenStack 是一个管理
计算 、
存储 和
网络资源 的数据中心云计算开放平台。
易于构建虚拟计算或存储服务的云,既可以为公有云、私有云,也可以为大云、小云提供可扩展、灵活的云计算。
OpenStack 有三个主要的成员:
Nova(计算服务)、
Swift(存储服务)、
Glance(镜像服务)。
第十一章:中国云计算技术
1. 国内云计算现状
BAT、UCloud、华为、曙光、云创。。。
第十二章:总结和展望
1. 主流商业云计算解决方案与开源方案之间的比较
全书总结
1. 主流商业三巨头(Google、Amazon、Microsoft)产品比较(共同点、方案区别)?
三家公司云计算体系架构的共同点:- 整个云计算平台对外提供统一的 Web 接口。
- 后台实现的细节对用户透明。
主要的区别:- Amazon 、 微软 的云计算服务都是由多种服务组成,需要为不同的服务提供不同的入口。Google 的云计算服务实现相对简单,没有实现多个服务的单独入口。
- 微软的云计算服务不仅支持云端应用程序,还支持本地的应用程序,这是微软云计算和其他三种方案的最大不同之一,反应了微软的 “云+端” 的策略。
2. 云计算的核心算法 Paxos 的计算
3. 传统数据库在云计算下横向拓展表现较差的原因?
传统的关系型数据库中都存在着扩展问题和性能问题。可扩展性主要表现在表空间不足的问题,
如果要对表空间进行扩容,这需要新增机器,需要将这些数据库中的数据同步等问题。支持的关系数据库服务器数量有限;只能向上扩展不能横向扩展。(参考资料:传统数据库缺陷 )
4. 虚拟机迁移如何实现
虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移前相同的状态,以便能够继续完成应用程序的任务。
虚拟机迁移主要包括:- P2V(物理机到虚拟机的迁移)
- V2V(虚拟机到虚拟机的迁移)
- V2P(虚拟机到物理机的迁移)
迁移的步骤:- 预迁移:选择一个目的计算机作为 VM 的新主机
- 预定资源:对 B 发送迁移请求,确认 B 是否有需要的资源。
- 预复制:A 以迭代的方式将内存页复制到 B 中,每次迭代只复制前一轮复制之后被修改的内容。
- 停机复制:对 A 停机,将它的网络连接重定向到 B ,将 CPU 状态和上一轮复制后被修改过的页都传送到 B 。
- 提交:B 通知 A 已经成功接收了 VM 的映像,A 确认之后,就可以销毁自己和它上面的 VM 。
- 启动:启动 B 上的 VM,并使用目的计算机的设备驱动,广播新的 IP 地址。
迁移的内容:内存的迁移的三个阶段:- Push 阶段:预复制
- Stop and Copy:停机复制
- Pull:在新的 VM 运行的时候,如果访问到未复制过的页,就从原来的 VM 中去复制过来。
网络资源的迁移:- 在局域网内,通过发送 ARP 重定向包,将 VM 的 IP 地址与目的主机的 MAC 地址相绑定,之后的所有包就可以发送到目的机器上。
存储设备的迁移:- 在局域网中通过 NFS(Network File System)方式进行共享,而非真正的迁移。
5. 云数据中心的虚拟机管理程序了解
6. MapReduce 的主要工作原理
(见第二章和第五章整理)
7. 云计算发展趋势、产业现状
云计算目前的缺点:- 平台角度:没有统一的标准
- 计算角度:对于不容易分解为众多互相独立子任务的紧耦合型计算任务,效率较低
- 数据角度:目前云计算征集数据的方式过于原始,没有结合网络技术,直接从网络中获取数据。
- 资源集成角度:将各类资源和应用迁移到云计算平台的成本过高。
- 信息安全角度:失去了绝对控制权。
云计算的发展方向:- 使用云格技术,将云计算与网络技术相结合,网络技术解决分布在不同机构的各种信息资源的共享问题,云计算解决计算力和存储空间的集中使用问题。
注:笔者也是刚刚开始学习的小白,如有问题请指正,谢谢。
推荐阅读: