武汉理工大学云计算考试总结_第1页
武汉理工大学云计算考试总结_第2页
武汉理工大学云计算考试总结_第3页
武汉理工大学云计算考试总结_第4页
武汉理工大学云计算考试总结_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 什么是云计算: 答:云是虚拟计算机资源池。云可以处理各种不同的负载,包括批处理式后端作业和交互式用户界面应用。云通过迅速提供虚拟机或物理机允许负载被快速配置和划分。云支持冗余,自恢复,高可扩展编程模型,以允许负载从许多不可避免的硬件/软件错误中恢复。最终,云计算系统可以通过实时监视资源来确保分配在需要时平衡。来源:数据爆炸促发了云计算的思想。2. 云平台提供的服务类型: 数据中心的虚拟化资源形成互联网云,向付费用户提供硬件,软件,存储,网络和服务以运行他们的应用。云计算提供了一个虚拟化的按需动态供应硬件,软件和数据集的弹性资源平台. 基础设施即服务(IaaS):这个模型将用户需要的基础设

2、施(即服务器,存储,网络和数据中心构造)组合在一起。用户可以在使用客户机操作系统的多个虚拟机上配置和运行指定的应用。 平台即服务(PaaS):这个模型使用户能够在一个虚拟的平台上配置用户制定的应用。PaaS包括中间件,数据库,开发工具和一些运行时支持(如Web 2.0和Java)。 3.软件即服务(SaaS):这是指面向数千付费云用户的初始浏览器的应用软件。SaaS模型应用于业务流程,工业应用,客户关系管理,企业资源计划,人力资源和合作应用。 3.Google的核心技术 Google MapReduce(Map:对一组数据元素进行某种重复式的处理,Reduce:对Map中间结果进行某种进一步的

3、结果整理)(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文件系统的三种元数据:命名空间

4、,即整个分布式文件系统的目录结构。Chunk 与文件名的映射表 3.Chunk副本的位置信息,每个Chunk 默认有3个副本。GFS中每个数据块划分缺省为64MB。每个数据块会分别在3个不同的地方复制副本;每一个数据块,仅当3个副本都成功时,才认为数据保存成功。每个数据块再划分为64KB的子块,每个子块有一个32位的校验和。 BigTable:GFS是一个文件系统,难以提供对结构化数据的存储和访问管理。为此Google在GFS之上又设计了一个结构化数据存储和访问管理系统-BigTable,为应用程序提供比单纯文件系统更方便,更高层的数据操作能力。BigTable对存储在表中的数据不做任何解释,

5、一律视为字符串,具体数据结构的实现由用户自行定义。BigTable查询模型(row:string,column:string,time:int64)-结果数据字符串。支持查询,插入和删除操作。Amdah1定律:假设单处理器执行给定程序所需时间共为T分钟。必须串行执行的代码为(串行瓶颈)。可以由n个处理器并行执行的代码为1-。总共执行时间为T+(1-)T/n.加速比=S=T/(T+(1-)T/n)=1/(+(1-)/n),由此当趋近于0时加速比将达到n.固定负载问题:并行处理的系统效率E=S/n.并行处理的系统效率E = S/n=1/an+1-a系统效率通常非常低,特别是n很大时,这是因为实际情

6、况只有几个处理器在工作。Gustafson定律:当使用一个大规模集群时,为了实现更高的效率,我们必须考虑扩大问题规模来匹配集群的能力。设W是给定程序的负载,当使用n个处理器系统时,用户将负载扩展为W=aW+(1-a)nW。扩展加速比定义如下S=W/W=a+(1-a)n.效率表达式E=S/n=a/n+(1-a)。对于固定负载应采用Amdahl定律。为了解决扩展规模的问题,应采用Gustafson定律。可用性分析:HA(high accessibility)是所有集群,网络,P2P网络和云计算系统所期望的。如果系统有一个长的平均故障时间(Mean Time To Failure,MTTF)和短的修

7、复时间(Mean Time To Repair,MTTR),那么这个系统就是高度可用的。系统可用性形式化定义如下: 系统可用性=MTTF/(MTTF+MTTR)(大多数集群通过转移故障节点来达到高可用性的目的)。虚拟化: 虚拟化是一种计算机体系结构技术,其中,多个虚拟机共享同一台物理硬件机器。虚拟化的思想是分离软硬件以产生更好的系统性能。硬件虚拟化:硬件虚拟化分为:全虚拟化和基于主机的虚拟化。全虚拟化不需要修改主机操作系统。它依赖于二进制翻译来陷入和虚拟化一些敏感,不可虚拟化的指令执行。客户操作系统和他们的应用由非临界和临界指令构成。在基于主机的系统虚拟化中,主机操作系统和客户操作系统同时存在

8、,虚拟化软件层处于两者之间。主机操作系统仍旧负责管理硬件。客户操作系统安装并运行在虚拟化层之上。特定的应用可运行在虚拟机中。半虚拟化: 半虚拟化需要修改客户操作系统。半虚拟化虚拟机在用户程序中提供了特殊的API,要求真正修改操作系统。完全虚拟化:xen的完全虚拟化与半虚拟化的区别是,完全虚拟化需要cpu支持硬件虚拟化,而半虚拟化不需要cpu支持硬件虚拟化。也就是,cpu支持了硬件虚拟化,xen配置完成后就是完全虚拟化,cpu不支持就是半虚拟化。三种实现技术:1、模拟软件 emulation 通过模拟器模拟所有的指令,不通知虚拟化出来的操作系统 它的运行环境。2、虚拟化一部分特权指令或者使用二进

9、制日志转换技术。3、让cpu支持硬件虚拟化。被虚拟化出来的操作系统上执行的指令,会运行在被虚拟化出来的硬件上,就是完全虚拟化。虚拟化实现的层次:1. 指令集体系结构级 2.硬件抽象级 3.操作系统级 4.库支持级 5.应用程序级CPU,内存和I/O设备的虚拟化VMM(虚拟机监视器),它负责管理计算机系统的硬件资源。每次应用程序访问硬件时,VMM都会捕获该访问请求虚拟化软件:开源虚拟化:Oracle VM、Citrix Xen、Red Hat KVM商业虚拟化:IBM PowerVM、微软Hyper-V、VMware vSphereVMware:要求处理器必须支持Intel 的VT或AMD的AM

10、D-V伪指令。 KVM的实现原理:KVM是一个基于Linux的半虚拟化系统,是Linux2.6.20内核的一部分。内存管理和调度由存在的Linux内核执行,KVM则负责其余部分,这使得KVM比其他需要控制整个机器的hypervisor简单许多。KVM是一个基于硬件辅助的半虚拟化工具,对性能进行了改进,且支持未修改的客户操作系统,如Windows,Linux,Solaris和其他Unix变种。内存虚拟化机制 客户操作系统和VMM分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。进一步,也应该支持MMU虚拟化,并且对客户操作系统透明,客户操作系统仍旧负责从虚拟地址到虚拟机

11、的物理内存地址的映射,但是客户操作系统并不能直接访问实际硬件内存,VMM负责将客户物理内存映射到实际的机器内存上。8、I/O虚拟化实现方式I/O虚拟化包括管理虚拟设备和共享的物理硬件之间I/O请求的路由选择。实现I/O虚拟化有三种方式:全设备模拟: 一个设备的所有功能或总线结构(如设备枚举、识别、中断和DMA)都可以在软件中复制。半虚拟化: 是Xen所采用的方法,是广为熟知的分离式驱动模型,由前端驱动和后端驱动两部分构成。前端驱动运行在Domain U中,而后端驱动运行在Domain 0中,它们通过一块共享内存交互。直接I/O虚拟化: 让虚拟机直接访问设备硬件。它能获得近乎本地的性能,并且CP

12、U开销不高。内存虚拟化的页表机制 由于客户操作系统的每个页表在VMM中都有一个独立页表与之对应,VMM中的页表称为影子页表。嵌套的页表在虚拟内存系统中额外增加了一层映射。MMU负责由操作系统定义的虚拟地址到物理地址的转换。然后,使用Hypervisor定义的其他页表将物理内存地址转换为机器地址。VMware使用影子页表进行虚拟内存到机器内存的地址转换。当客户操作系统修改了虚拟内存到物理内存的映射时,VMM会及时更新影子页表。内存的迁移实现的功能 内存迁移在虚拟机迁移时很重要,因此内存迁移一个重要的功能是实现虚拟机的迁移,可以将虚拟机的内存实例从一个物理节点迁移至另一个物理节点虚拟化软件层基本功

13、能 P88虚拟化软件层的主要功能是将一个主机的物理硬件虚拟化为可被各虚拟机互斥使用的虚拟资源。(这可以在不同的操作层实现)虚拟化软件通过在计算机系统的不同层插入虚拟化层来创建虚拟机抽象。通常的虚拟化层包括指令集体系结构(Instruction Set Architecture,ISA)级、硬件抽象级、操作系统级、库支持级和应用程序级互联网上配置云平台的方式公有云、私有云、混合云单一系统映像包括哪些内容单系统映象(Single-system image,SSI)是分布式计算的一种模式,使用一个多网络的通用接口,分布式数据库,或者多个服务器,但对用户而言是一个系统。换句话说,该操作系统环境由系统中

14、的所有节点共享。其内容包括:进程迁移,许多单系统镜像提供进程迁移的功能。进程在一个节点可是运行,出于资源平衡或者管理的原因,然后被迁移另一节点运行。当一个进程从一个节点迁移到另一个节点时,其他相关的资源(比如IPC资源)可能也一同跟着迁移。进程检测,单个进程空间,单个根节点,单个I/O空间,单个IPC空间,以及集群IP地址。 巨大的Web搜索引擎和海量的数据并行处理硬件平台。 强大的数据处理服务能力 编程题 Word count传统串行处理方式 /没有读取文件/* * To change this template, choose Tools | Templates * and open th

15、e 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=n

16、ew 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().iter

17、ator();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 */

18、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); Hasht

19、able 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);

20、 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 ha

21、ppens 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 sta

22、tic 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:UsersPANJINTIANDesktopresu

23、lt.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.hasMor

24、eTokens() 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;

25、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.f

26、s.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.

27、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)throws IOException,InterruptedException/实现map函数StringTokenizer itr=new StringTokenizer(value.toString();/将输入的文本转换为字符串类型while(itr.hasMoreTokens()word.set(itr.nextToken();/word(Text)对象赋值context.write(word,one);/将分析结果对写入public static class IntSumReducer extends

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论