




免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云计算与分布式系统期末复习1. 云计算的概念,来源以及与并行计算的关系云计算的概念从集群、网格和效用计算发展而来。云是虚拟计算机资源池。云可以处理各种不同的负载,包括批处理式后端作业和交互式用户界面应用。云通过迅速提供虚拟机或物理机允许负载被快速配置和划分。云支持冗余,自恢复,高可扩展编程模型,以允许负载从许多不可避免的硬件/软件错误中恢复。最终,云计算系统可以通过实时监视资源来确保分配在需要时平衡。来源:数据爆炸促发了云计算的思想。集群和网格计算并行使用大量计算机可以解决任何规模的问题。效用计算和SaaS(Softwareas a Service)将计算资源作为服务进行按需付费。云计算利用动态资源为终端用户传递大量服务。云计算是一种高吞吐量计算范式,它通过大的数据中心或服务器群提供服务。云计算模型使得用户可以随时随地通过他们的互连设备访问共享资源。云计算避免了大量的数据移动,可以带来更好的网络带宽利用率。而且,机器虚拟化进一步提高了资源利用率,增加了应用程序灵活性降低了使用虚拟化数据中心资源的总体成本。云计算使用虚拟化平台,通过按需动态配置硬件、软件和数据集,将弹性资源放在一起,主要思想是使用数据中心中的服务器集群和大规模数据库,将桌面计算移向基于服务的平台,利用其对提供商和用户的低成本和简单性。云应用的所有计算任务被分配到数据中心的服务器上。这些服务器主要是虚拟集群的虚拟机,由数据中心资源产生出来。云平台是通过虚拟化分布的系统。公有云和私有云都是在互联网上开发的。公有云构建在互联网之上,任何已付费的用户都可以访问。公有云属于服务提供商,用户通过订阅即可访问。私有云构建在局域网内部,属于一个独立的组织。由客户管理,而且其可访问范围限制在所属客户及其合作者之中。混合云由公有云和私有云共同构成公有云促进了标准化,节约了资金投入,为应用程序提供了很好的灵活性;私有云尝试进行定制化,可以提供更高的有效性、弹性、安全性和隐私性;混合云则处于两者中间,在资源共享方面进行了折中。云的核心是服务器集群(或虚拟机集群)。集群节点用作计算节点,少量的控制节点用于管理和监视云活动。用户作业的调度需要为用户创建的虚拟集群分配任务。数据中心和超级计算机在网络需求方面也不相同。超级计算机使用客户设计的高带宽网络,如胖树或3D环形网络;数据中心网络主要是基于IP的商业网络云平台设计目标: 可扩展性、虚拟化、有效性和可靠性2. 云平台提供的服务类型6层的云服务,范围从硬件、网络和配置到基础设施、平台和软件应用上三层Iaas(基础设施即服务)Paas(平台即服务) Saas(软件即服务)硬件即服务(HaaS) 网络即服务(NaaS ) 位置即服务(配置即服务)(LaaS)。数据中心的虚拟化资源形成互联网云,向付费用户提供硬件,软件,存储,网络和服务以运行他们的应用。云计算提供了一个虚拟化的按需动态供应硬件,软件和数据集的弹性资源平台. 基础设施即服务(IaaS):这个模型将用户需要的基础设施(即服务器,存储,网络和数据中心构造)组合在一起。用户可以在使用客户机操作系统的多个虚拟机上配置和运行指定的应用。 平台即服务(PaaS):这个模型使用户能够在一个虚拟的平台上配置用户制定的应用。PaaS包括中间件,数据库,开发工具和一些运行时支持(如Web 2.0和Java)。 3.软件即服务(SaaS):这是指面向数千付费云用户的初始浏览器的应用软件。SaaS模型应用于业务流程,工业应用,客户关系管理,企业资源计划,人力资源和合作应用。3. Google的核心技术(包括默认文件?大小)谷歌的云计算应用程序的构成要素包括存储大量数据的GFS、为应用程序开发者提供的MapReduce编程框架、用于分布式应用程序锁服务的Chubby和为访问结构化或半结构化数据的BigTable存储服务。Google MapReduce(Map:对一组数据元素进行某种重复式的处理,Reduce:对Map中间结果进行某种进一步的结果整理)(MapReduce把what need to do 与how to do 分开了)(设计思想:scale out not up,assume failures are common,moving processing to data,process data sequentially and avoid random access)上升到架构:统一架构,为程序员隐藏系统层细节。 Google GFS google gfs 是一个基于分布式集群的大型分布式文件系统,为MapReduce计算框架提供底层数据存储和数据可靠性支撑。Master 上保存了GFS文件系统的三种元数据:命名空间,即整个分布式文件系统的目录结构。Chunk 与文件名的映射表 3.Chunk副本的位置信息,每个Chunk 默认有3个副本。GFS中每个数据块划分缺省为64MB。每个数据块会分别在3个不同的地方复制副本;每一个数据块,仅当3个副本都成功时,才认为数据保存成功。每个数据块再划分为64KB的子块,每个子块有一个32位的校验和。 BigTable:GFS是一个文件系统,难以提供对结构化数据的存储和访问管理。为此Google在GFS之上又设计了一个结构化数据存储和访问管理系统-BigTable,为应用程序提供比单纯文件系统更方便,更高层的数据操作能力。BigTable对存储在表中的数据不做任何解释,一律视为字符串,具体数据结构的实现由用户自行定义。BigTable查询模型(row:string,column:string,time:int64)-结果数据字符串。支持查询,插入和删除操作。4. 怎样分析与计算系统的可用性可用性表示系统对用户可用的时间百分比,即系统正常运行的时间百分比。可用性分析:HA(high accessibility)是所有集群,网络,P2P网络和云计算系统所期望的。如果系统有一个长的平均故障时间(Mean Time To Failure,MTTF)和短的修复时间(Mean Time To Repair,MTTR),那么这个系统就是高度可用的。系统可用性形式化定义如下: 系统可用性=MTTF/(MTTF+MTTR)(大多数集群通过转移故障节点来达到高可用性的目的)。5. 虚拟化的基本概念,硬件虚拟化的基本类型,虚拟化软件,目前市场上开源的vmare版本所支持的指令集虚拟化: 虚拟化是一种计算机体系结构技术,其中,多个虚拟机共享同一台物理硬件机器。虚拟化的思想是分离软硬件以产生更好的系统性能。虚拟化技术通过在同一个硬件主机上多路复用虚拟机的方式来共享昂贵的硬件资源硬件虚拟化:硬件虚拟化分为:全虚拟化和基于主机的虚拟化。全虚拟化不需要修改主机操作系统。它依赖于二进制翻译来陷入和虚拟化一些敏感,不可虚拟化的指令执行。客户操作系统和他们的应用由非临界和临界指令构成。在基于主机的系统虚拟化中,主机操作系统和客户操作系统同时存在,虚拟化软件层处于两者之间。主机操作系统仍旧负责管理硬件。客户操作系统安装并运行在虚拟化层之上。特定的应用可运行在虚拟机中。半虚拟化: 半虚拟化需要修改客户操作系统。半虚拟化虚拟机在用户程序中提供了特殊的API,要求真正修改操作系统。完全虚拟化:xen的完全虚拟化与半虚拟化的区别是,完全虚拟化需要cpu支持硬件虚拟化,而半虚拟化不需要cpu支持硬件虚拟化。也就是,cpu支持了硬件虚拟化,xen配置完成后就是完全虚拟化,cpu不支持就是半虚拟化。三种实现技术:1、模拟软件 emulation 通过模拟器模拟所有的指令,不通知虚拟化出来的操作系统 它的运行环境。2、虚拟化一部分特权指令或者使用二进制日志转换技术。3、让cpu支持硬件虚拟化。被虚拟化出来的操作系统上执行的指令,会运行在被虚拟化出来的硬件上,就是完全虚拟化。CPU,内存和I/O设备的虚拟化VMM(虚拟机监视器),它负责管理计算机系统的硬件资源。每次应用程序访问硬件时,VMM都会捕获该访问请求CPU、内存和I/O设备的虚拟化为支持虚拟化,处理器利用硬件辅助虚拟化,引入一种特殊的运行模式和指令,使得 VMM和客户操作系统可运行在不同模式中,客户操作系统及其应用程序的所有敏感指令会陷入到VMM中。虚拟化的硬件支持现代操作系统和处理器允许多个进程同时运行。如果处理器中没有保护机制,那么不同进程的所有指令都可以直接访问硬件,很容易导致系统崩溃。因此,所有处理器都至少需要两种模式(用户模式和管理模式)来确保对临界区硬件的受控访问。运行在管理模式的指令称为特权指令,其他指令为非特权指令。CPU虚拟化虚拟机的非特权指令直接在物理主机中运行关键指令可以分为三类:特权指令、控制敏感指令和行为敏感指令。特权指令需要在特权模式中执行,当在特权模式之外执行特权指令时会发生陷入。控制敏感指令尝试改变使用资源的配置。行为敏感指令根据资源的配置情况会有不同的行为,包括在虚拟内存中进行的负载和存储操作。VMM运行在管理模式时,CPU支持在用户模式运行虚拟机的特权指令和非特权指令,则该CPU体系结构是可虚拟化的。RISC的所有控制敏感指令和行为敏感指令都是特权指令,RISC的CPU体系结构是天然可虚拟化的。内存虚拟化客户操作系统和VMM分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。客户操作系统仍旧负责从虚拟地址到虚拟机的物理内存地址的映射,VMM负责将客户物理内存映射到实际的机器内存上I/O虚拟化I/O虚拟化包括管理虚拟设备和共享的物理硬件之间I/O请求的路由选择。实现I/O虚拟化有三种方式:全设备模拟: 一个设备的所有功能或总线结构(如设备枚举、识别、中断和DMA)都可以在软件中复制。半虚拟化: 是Xen所采用的方法,是广为熟知的分离式驱动模型,由前端驱动和后端驱动两部分构成。前端驱动运行在Domain U中,而后端驱动运行在Domain 0中,它们通过一块共享内存交互。直接I/O虚拟化: 让虚拟机直接访问设备硬件。它能获得近乎本地的性能,并且CPU开销不高。6. KVM实现原理(怎样实现硬件虚拟化的监控),内存虚拟化的基本机制,I/O虚拟化实现方式KVM的实现原理:KVM是一个基于Linux的半虚拟化系统,是Linux2.6.20内核的一部分。内存管理和调度由存在的Linux内核执行,KVM则负责其余部分,这使得KVM比其他需要控制整个机器的hypervisor简单许多。KVM是一个基于硬件辅助的半虚拟化工具,对性能进行了改进,且支持未修改的客户操作系统,如Windows,Linux,Solaris和其他Unix变种。CPU,内存和I/O设备的虚拟化VMM(虚拟机监视器),它负责管理计算机系统的硬件资源。每次应用程序访问硬件时,VMM都会捕获该访问请求CPU、内存和I/O设备的虚拟化为支持虚拟化,处理器利用硬件辅助虚拟化,引入一种特殊的运行模式和指令,使得 VMM和客户操作系统可运行在不同模式中,客户操作系统及其应用程序的所有敏感指令会陷入到VMM中。虚拟化的硬件支持现代操作系统和处理器允许多个进程同时运行。如果处理器中没有保护机制,那么不同进程的所有指令都可以直接访问硬件,很容易导致系统崩溃。因此,所有处理器都至少需要两种模式(用户模式和管理模式)来确保对临界区硬件的受控访问。运行在管理模式的指令称为特权指令,其他指令为非特权指令。CPU虚拟化虚拟机的非特权指令直接在物理主机中运行关键指令可以分为三类:特权指令、控制敏感指令和行为敏感指令。特权指令需要在特权模式中执行,当在特权模式之外执行特权指令时会发生陷入。控制敏感指令尝试改变使用资源的配置。行为敏感指令根据资源的配置情况会有不同的行为,包括在虚拟内存中进行的负载和存储操作。VMM运行在管理模式时,CPU支持在用户模式运行虚拟机的特权指令和非特权指令,则该CPU体系结构是可虚拟化的。RISC的所有控制敏感指令和行为敏感指令都是特权指令,RISC的CPU体系结构是天然可虚拟化的。I/O虚拟化I/O虚拟化包括管理虚拟设备和共享的物理硬件之间I/O请求的路由选择。内存虚拟化客户操作系统和VMM分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。客户操作系统仍旧负责从虚拟地址到虚拟机的物理内存地址的映射,VMM负责将客户物理内存映射到实际的机器内存上内存虚拟化机制 客户操作系统和VMM分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。进一步,也应该支持MMU虚拟化,并且对客户操作系统透明,客户操作系统仍旧负责从虚拟地址到虚拟机的物理内存地址的映射,但是客户操作系统并不能直接访问实际硬件内存,VMM负责将客户物理内存映射到实际的机器内存上。8、I/O虚拟化实现方式I/O虚拟化包括管理虚拟设备和共享的物理硬件之间I/O请求的路由选择。实现I/O虚拟化有三种方式:全设备模拟: 一个设备的所有功能或总线结构(如设备枚举、识别、中断和DMA)都可以在软件中复制。半虚拟化: 是Xen所采用的方法,是广为熟知的分离式驱动模型,由前端驱动和后端驱动两部分构成。前端驱动运行在Domain U中,而后端驱动运行在Domain 0中,它们通过一块共享内存交互。直接I/O虚拟化: 让虚拟机直接访问设备硬件。它能获得近乎本地的性能,并且CPU开销不高。内存虚拟化的页表机制 由于客户操作系统的每个页表在VMM中都有一个独立页表与之对应,VMM中的页表称为影子页表。嵌套的页表在虚拟内存系统中额外增加了一层映射。MMU负责由操作系统定义的虚拟地址到物理地址的转换。然后,使用Hypervisor定义的其他页表将物理内存地址转换为机器地址。VMware使用影子页表进行虚拟内存到机器内存的地址转换。当客户操作系统修改了虚拟内存到物理内存的映射时,VMM会及时更新影子页表。4. 内存迁移的实现功能内存的迁移实现的功能 内存迁移在虚拟机迁移时很重要,因此内存迁移一个重要的功能是实现虚拟机的迁移,可以将虚拟机的内存实例从一个物理节点迁移至另一个物理节点5. 云平台处理的应用类型6. 互联网配置云系统的方式(私有云,)公有云、私有云、混合云7. 单一系统镜像包括哪些内容(1) 单系统镜像特征:单一系统 、单一控制、对称性、位置透明性 (2) 单系统镜像(SSI)包括单一入口、单文件层次、单一I/O空间、单一网络机制、单一控制点、单一作业管理系统、单一内存空间和单一进程空间。(3) SSI额外特征:单一作业管理系统 所有集群作业能够由任意节点提交到单一作业管理系统。单一用户接口 用户通过单一图形界面使用集群。单一进程空间 各节点的所有用户进程形成单一进程空间,并且共享统一进程认证机制。SSI集群化的中间件 在集群应用的三个层次上,中间件支持各种SSI特征。管理级 该级处理用户应用程序,并且提供作业管理系统。编程级 该级提供单一文件层次(NFS、xFS、AFS、Proxy)和分布式共享内存实现级 该级支持单一进程空间、检查点机制、进程迁移和单一I/O空间。8. 虚拟化软件层的基本功能虚拟化实现的层次引入虚拟化后,不同用户应用程序由自身的操作系统(即客户操作系统)管理,并且那些客户操作系统可以独立于主机操作系统同时运行在同一个硬件上,这通常是通过新添加一个称为虚拟化层的软件来完成,该虚拟化层称为hypervisor或虚拟机监视器(Virtual Machine Monitor,VMM)指令集体系结构级:代码解释和动态二进制翻译硬件抽象级:虚拟化一个计算机硬件资源操作系统级:在单一物理服务器上创建隔离的容器和操作系统实例库支持级:库接口的虚拟化应用程序级:进程级虚拟化、高级语言(High Level Language,HLL)虚拟机虚拟化软件层的主要功能是将一个主机的物理硬件虚拟化为可被各虚拟机互斥使用的虚拟资源。(这可以在不同的操作层实现)虚拟化软件通过在计算机系统的不同层插入虚拟化层来创建虚拟机抽象。通常的虚拟化层包括指令集体系结构(Instruction Set Architecture,ISA)级、硬件抽象级、操作系统级、库支持级和应用程序级 编程题 Word count传统串行处理方式 /没有读取文件/* * To change this template, choose Tools | Templates * and open the template in the editor. */package wordcount;import java.util.*;/* * * author PANJINTIAN */public class WordCount /* * param args the command line arguments */ public static void main(String args) Stringtext=new Stringhello world,hello every one, say hello to every one in the world ; Hashtable ht=new Hashtable(); for(int i=0;i3;i+) StringTokenizer st=new StringTokenizer(texti); while(st.hasMoreTokens() String word=st.nextToken(); if(!ht.containsKey(word) ht.put(word, new Integer(1); else int wc=(Integer)ht.get(word).intValue()+1; ht.put(word, new Integer(wc); for(Iterator itr=ht.keySet().iterator();itr.hasNext();) String word=(String)itr.next(); System.out.print(word+:+(Integer)ht.get(word)+; ); 读取文件并且打印数量最多的前三个:/* * To change this template, choose Tools | Templates * and open the template in the editor. */package wordcount;import java.util.*;import java.io.*;/* * * author PANJINTIAN */public class WordCount /* * param args the command line arguments */ public static void main(String args) FileReader fr=null; try fr=new FileReader(C:UsersPANJINTIANDesktopwordCount.txt); catch(IOException e) System.out.println(can not read the file.); BufferedReader bf=new BufferedReader(fr); Hashtable ht=new Hashtable(); String s=null; try while(s=bf.readLine()!=null) StringTokenizer st=new StringTokenizer(s); while(st.hasMoreTokens() String word=st.nextToken(); if(!ht.containsKey(word) ht.put(word, new Integer(1); else int wc=(Integer)ht.get(word).intValue()+1; ht.put(word, new Integer(wc); int max=0; int fmax=new int3; String fword=new String3; int number; String key=null; String Mword=null; for(int i=0;i=max) max=number; Mword=key; fmaxi=max; fwordi=Mword; ht.remove(Mword); max=0; for(int i=0;i3;i+) System.out.println(fwordi+:+fmaxi); catch(IOException e) System.out.println(error happens in reading file); 从文件读入文本并将结果写入另外一个文件中/* * To change this template, choose Tools | Templates * and open the template in the editor. */package wordcount;import java.util.*;import java.io.*;/* * * author PANJINTIAN */public class WordCount /* * param args the command line arguments */ public static void main(String args) FileReader fr=null; FileWriter fw=null; String key=null; String value=null; String record=null; try fr=new FileReader(C:UsersPANJINTIANDesktopwordCount.txt); catch(IOException e) System.out.println(can not read the file.); try fw=new FileWriter(C:UsersPANJINTIANDesktopresult.txt,true); catch(IOException e) System.out.println(could not open the file); BufferedReader bf=new BufferedReader(fr); BufferedWriter bw=new BufferedWriter(fw); Hashtable ht=new Hashtable(); String s=null; try while(s=bf.readLine()!=null) StringTokenizer st=new StringTokenizer(s); while(st.hasMoreTokens() String word=st.nextToken(); if(!ht.containsKey(word) ht.put(word, new Integer(1); else int wc=(Integer)ht.get(word).intValue()+1; ht.put(word, new Integer(wc); for(Iterator itr=ht.keySet().iterator();itr.hasNext();) key=(String)itr.next(); value=ht.get(key).toString(); record=key+ +value; bw.write(record); bw.newLine(); bw.flush(); bf.close(); bw.close(); fr.close(); fw.close(); catch(IOException e) System.out.println(error happens in reading file); 并行运算:import java.io.IOException ;import java.util.String Tokenizer;import org.apache.hadoop.conf.Configurationimport org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;public class WordCount public static class TokenizerMapper extends Mapper private final static IntWritable one=new IntWritable(1);/建立一个int变量one,初值为1private Text word=new Text();/建立一个String 变量Word,用于接收传入的文本public void map(Object key,Text value,Context context
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津团员考试试题及答案
- 2025年高压低压电工特种作业操作证进网许可证考试题库(附答案)
- 2025年高校教师资格证之《高等教育心理学》练习题库完整答案详解
- 2025年高级会计师岗位面试真题及答案解析
- 2025年高等院校逻辑学考试真题及答案
- 言语治疗期末试题及答案
- 下属企业公章管理办法
- 网格化管理办法模板
- 绿茶叶种植管理办法
- 规范小型船艇管理办法
- 合伙需要签订的五份协议书
- 非物质文化遗产概论(第二版)全册教案
- 质押合同解除通知函
- 农业特色产业培训课件
- 中国古代十大传世名画
- CityEngine城市三维建模入门教程 课件全套 第1-7章 CityEngine概述-使用Python脚本语言
- 药品储存培训课件
- 通信电源通信电源的概念
- JCT412.1-2018 纤维水泥平板 第1部分:无石棉纤维水泥平板
- 中国空白地图(打印)
- 人格心理学导论-第1章-人格心理学概述
评论
0/150
提交评论