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