武汉理工大学云计算重点(刘鹏第三版)_第1页
武汉理工大学云计算重点(刘鹏第三版)_第2页
武汉理工大学云计算重点(刘鹏第三版)_第3页
武汉理工大学云计算重点(刘鹏第三版)_第4页
武汉理工大学云计算重点(刘鹏第三版)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

一、大数据与云计算1.云计算是并行计算、分布式计算和网格计算的发展。2云计算服务类型:将基础设施作为服务laas、将平台作为服务paas、将软件作为服务saas。3.云计算体系结构分为四层:物理资源层、资源池层,管理中间件层,SOA(service-oriented-architecture,面向服务的体系结构)构建层。4.云计算有更低的硬件和网络成本、更低的管理成本和电力成本,也有更高的资源利用率。5.云计算特点:超大规模、虚拟化、高可靠性、通用性、高可伸缩性、按需服务、极其廉价二、Google云计算原理和应用Google云计算技术包括:Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁Chubby、分布式结构化数据表BigTable、分布式存储系统Megastore、分布式监控系统Dapper、海量的交互式分析工具Dremel,以及内存大数据分析系统powerdrill。2.GFS是一个大型的分布式文件系统GoogleFileSystem3.GFS将文件按照固定大小进行分块,默认是64MB,每一块称为一个chunk,每一个chunk都有一个索引号。4.GFS特点:采用中心服务器模式、不缓存数据、在用户态下实现、只提供专用接口5.master容错,Master上保存了GFS文件系统的三种元数据NameSpace,文件系统目录结构、Chunk与文件名的映射表、Chunk副本的位置信息(默认有三个副本)6.chunkserver容错:GFS中的每一个文件被划分成多个Chunk,Chunk的默认大小是64MB,每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验和,保证数据正确。7.系统管理技术:大规模集群安装技术、故障检测技术、节点动态加入技术节能技术8.mapreduce模型:Map函数--对一部分原始数据进行指定的操作。每个Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化。reduce函数--操作—对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,reduce也可以在并行环境下执行。9.MapReduce函数把输入文件分成M块,每块大概16M~64MB。10.Chubby几个重要的特性:Chubby不支持内部文件的移动;不记录文件的最后访问时间;另外在Chubby中并没有符号连接(SymbolicLink,又叫软连接,类似于Windows系统中的快捷方式)和硬连接(HardLink,类似于别名)的概念11.用户打开某个节点的同时会获取一个类似于UNIX中文件描述符(FileDescriptor)的句柄,这个句柄由以下三个部分组成:校验数位:防止其他用户创建或猜测这个句柄、序号:确定句柄由当前还是以前的主服务器创建、模式信息:用于新的主服务器重新创建一个旧句柄。补充:Bigtable是Google开发的基于GFS和Chubby的分布式存储系统。12.分布式结构化数据表Bigtable设计动机与目标:需要存储的数据种类繁多、海量的服务请求、商用数据库无法满足Google的需求。13.Bigtable选用了Google自己开发的分布式锁服务Chubby14.Google应用程序引擎:GoogleAppEngine为每个应用程序提供了一个安全运行环境,该沙盒可以保证每个应用程序能够安全的隔离运行。第五章、hadoop2.01.2002年开源组织Apache成立开源搜索引擎项目Nutch,2004年Google三大论文,Apache实现了Nutch版的NDFS和MapReduce2006年NDFS和MapReduce移出Nutch,形成独立项目,称为Hadoop。2.hadoop分布式文件系统HDFS可以部署在廉价的硬件上,能够高容错、可靠的存储海量数据(可以达到TB甚至PB级)。它还可以和Yarn中的mapreduce编程模型很好的结合,为应用程序提供高吞吐量的数据访问,适用于大数据应用程序。3.HDFS架构:4.HDFS内部特性:冗余备份、副本存放副本选择HDFS会尽量使用离程序最近的副本来满足用户请求,这样可以减少总带宽消耗和读延时。如果在读取程序的同一个机架上有一个副本,那么就使用这个副本;如果HDFS机群跨了多个数据中心,那么读取程序将优先考虑本地数据中心的副本。HDFS的架构支持数据均衡策略。如果某个DataNode的剩余磁盘空间下降到一定程度,按照均衡策略,系统会自动把数据从这个DataNode移动到其他节点。当对某个文件有很高需求时,系统可能会启动一个计划创建该文件的新副本,并重新平衡集群中的其他数据。4心跳检测5数据完整性检测6元数据磁盘失效7简单一致性模型、流式数据访问客户端缓存客户端创建文件的请求不是立即到达NameNode,HDFS客户端先把数据缓存到本地的一个临时文件,程序的写操作透明地重定向到这个临时文件。当这个临时文件累积的数据超过一个块的大小(128MB)时,客户端才会联系NameNode。NameNode在文件系统中插入文件名,给它分配一个数据块,这样客户端就把数据从本地的缓存刷新到指定的数据块中。当文件关闭后,临时文件中剩余的未刷新数据也会被传输到DataNode中,然后客户端告诉NameNode文件已关闭,此时NameNode才将文件创建操作写入日志进行存储。如果NameNode在文件关闭之前死机,那么文件将会丢失。如果不采用客户端缓存,网络速度和拥塞都会对输出产生很大的影响。流水线复制当客户端准备写数据到HDFS的文件中时,数据一开始会写入本地临时文件。假设该文件的复制因子是3,当本地临时文件积累到一个数据块的大小时,客户端会从NameNode获取一个副本存放的DataNode列表,列表中的DataNode都将保存那个数据块的一个副本。客户端首先向第一个DataNode传输数据,第一个DataNode一小块一小块(4kB)的接受数据,写入本地文件的同时,把接受到的数据传输给列表的第二个DataNode;第二个DataNode以同样的方式边收边传,把数据传输给第三个DataNode;第三个DataNode把数据写入本地文件。DataNode从前一个节点接受数据的同时,即时把数据传给后面的节点,这就是流水线复制10.架构特征11.超大规模数据集第六章、hadoop2.0大家族1.Hbase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性高性能列存储可伸缩实时读写的分布式数据库系统。Hbase不仅仅在设计上不同于一般的关系型数据库,在功能上区别更大,表现在HBase适合于存储非结构化数据,Hbase是基于列的而不是基于行的模式,Hbase在Hadoop之上提供了类似于BigTable的能力。2.hadoop逻辑模型元素由行健、列(<列族>:<限定符>)和时间戳唯一确定,元素中的数据以字节码的形式存储,没有类型之分。行键是数据行在表中的唯一标识,并作为检索记录的主键。3.Hive是一个构建在Hadoop上的数据仓库框架,它起源于Facebook内部信息处理平台。4.Hive部署:按metastore存储位置的不同,其部署模式分为内嵌模式、本地摸索和完全远程模式。5.Flume是一个分布式高性能、高可靠的数据传输工具,包含Source、Channel、Sink三个部分,Flume将三者构成的统一整体称为agent,启动时必须以agent为单位启动Flume。1)它负责读取原始数据,目前Flume支持大量类型,用户可以自定义Source,使用时在配置文件里声明即可。2)它负责将从Source端传来的数据存入Channel,目前Flume包含三中类型的channel,即memory,JDBC和file,当传输数据量较大时,应当考虑使用filechannel。用户也可以自己定义channel,使用时在配置文件里声明即可。Flume的分用、复用和过滤功能即在于此,通过定义并控制多个相互无关的channel,可以实现数据发往不同地点而不干涉。3)它负责从Channel中取出并发送数据,Flume当前支持HDFS,logger,Avro,thrift,IRC,file和Hbase等大量类型的sink,Sink内部都是使用netty来发送数据的。6.Mahout是基于Hadoop平台的机器学习工具,主要包含分类、聚类、协同过滤三种类型算法,处理的类型必须是矩阵类型的二进制数据。第七章、虚拟化技术1.根据虚拟化层实现方式的不同,服务器虚拟化技术分为寄居虚拟化和裸机虚拟化。2.服务器虚拟化的底层实现:1)CPU虚拟化技术把物理CPU抽象成虚拟CPU,任意时刻,一个物理CPU只能运行一个虚拟CPU指令。每个客户操作系统可以使用一个或多个虚拟CPU,在各个操作系统之间,虚拟CPU的运行相互隔离,互不影响。CPU虚拟化需要解决正确运行和调度两个关键问题。2)内存虚拟化:内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。内存虚拟化也是虚拟机管理器的主要功能之一。内存虚拟化的思路主要是分块共享,内存共享的核心思想是内存页面的写时复制(CopyonWrite)。虚拟机管理器完成并维护物理机内存和虚拟机所使用的内存的映射关系。3)I/O设备虚拟化:I/O设备的异构性和多样性,导致I/O设备的虚拟化相较于CPU和内存的虚拟化要困难和复杂。I/O设备虚拟化技术把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求3.虚拟机迁移:虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成应用程序的任务。动态迁移的内容:1)内存的迁移2)网络资源的迁移3)存储设备的迁移4.隔离技术:虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术。5.存储虚拟化的主要方式:基于主机的存储虚拟化,基于存储设备的存储虚拟化、基于网络的存储虚拟化。6.数据中心网络虚拟化分为核心层、接入层和虚拟机网络虚拟化。第八章、openstack开源虚拟化平台1.openstack是一个管理计算、存储和网络资源的数据中心云计算开发平台。2.nova是openstack云计算构架的控制器。3.rabbitMQ的三种类型交换器:1)广播式交换器2)直接式交换器3)主题式交换器4.swift特性:1)高数据持久性2)完全对称的体系架构3)无限的可扩展性4)无单点故障5)简单、可依赖。第九章、云计算数据中心1.云计算数据中心的特征:1)高设备利用率2)绿色节能3)高可用性4)自动化管理2.云计算中心网络部署1)改进树型结构:为了解决传统数据中心树结构上层交换网路存在的单点失效和瓶颈问题,Alfares等人将fattree引入数据中心网络,fattree仍然采用三层级联的交换机拓扑结构为服务器之间的通信提供无阻塞网路交换(核心-汇聚-接入)2)递归层次结构:Dcell、FiConn、Bcube3.软件定义网络SDN是一种新型的网络技术,它将网络的控制平面与数据转发平面进行分离。SDN架构主要分为基础设施层、控制层和应用层。4.云计算节能技术1)DVFS节能技术:控制cpu能耗的技术,当cpu未被完全利用时,通过降低cpu的供电电压和时钟频率主动降低cpu性能,这样可以带来数量级的动态能耗降低。2)基于虚拟化的节能技术3)基于主机关闭/开启的节能技术:随机式策略、超时式策略和预测式策略。MapReduce编程实例WordCountpublicclassWordCount{publicstaticclassTokenizerMapperextendsMapper<Object,Text,Text,IntWritable>{privatefinalstaticIntWritableone=newIntWritable(1);privateTextword=newText();publicvoidmap(Objectkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{StringTokenizeritr=newStringTokenizer(value.toString());while(itr.hasMoreTokens()){word.set(itr.nextToken());context.write(word,one);}}}publicstaticclassIntSumReducer

extendsReducer<Text,IntWritable,Text,IntWritable>{privateIntWritableresult=newIntWritable();publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext)throwsIOException,InterruptedException{intsum=0;for(IntWritableval:values){sum+=val.get();}result.set(sum);context.write(key,result);}}publicstaticvoidmain(String[]args)throwsException{Configurationconf=newConfiguration();String[]otherArgs=newGenericOptionsParser(conf,args).getRemainingArgs();if(otherArgs.length!=2){System.err.println("Usage:wordcount<in><out>");System.exit(2);}Jobjob=newJob(conf,"wordcount");job.setJarByClass(WordCount.class);job.setMapperClass(TokenizerMapper.class);job.setCombinerClass(IntSumReducer.class);job.setReducerClass(IntSumReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job,newPath(otherArgs[0]));FileOutputFormat.setOutputPath(job,newPath(otherArgs[1]));System.exit(job.waitForCompletion(true)?0:1);}}Mapreduce编程实例--矩阵相乘matrixInputFormat:publicclassmatrixInputFormatextendsInputFormat<Intpair,intPair>{publicmatrix[]m=newmatrix[2];//新建两个实例publicList<InputSplit>getSplits(JobContextcontext)throwsIOExceptioninterruptionException{intNumOfFiles=readFile(context)for(intn=0;n<row;n++){row为行数for(intm=0;m〈col;m++){colmatrixInputSplitsplit=newmatrixInputSplit(n,this.m[0],m,this.m[1]);split.add(split);}}returnsplits}MatrixMultipublicclassmatrixMulti{publicstaticclassMatrix

温馨提示

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

评论

0/150

提交评论