学生的课程总评成绩由平时成绩(占50%)和期末考试成绩(50%)两部分构成。 1、 平时成绩依据课上小测验2次,每次占10%; 2、 提交创新性报告2份,每份10%; 3、 提交1次小论文,占10%。 4、 最后的开卷考试,成绩占50%。
网络计算基本概念 分布式对象计算
Web计算 XML Web Services 无线与移动计算
云计算 大数据及分析
要求:
1、请同学们提交2份创新报告,每份不少于800字,打印签名及学号。内容以上面8个主题为目标,自选题目。
2、请同学们提交1份小论文,字数不少于1500字,打印签名及学号。内容以上面8个主题为目标,自选题目,不要与创新报告内容重复。 3、按时参加考试,注意考试时间与地点,考试当天每人交来3份报告(打印、签名及学号)。开卷考试,自带资料,要求字迹工整,内容详实,认真书写。
一:将会从以下简述题中选择部分。
1、 阐述分布式核心技术中的分布式计算、并行计算、云计算的基本概念,以及各自的技术
核心特点? 概念:
(1) 分布式计算:将需要巨大计算能力的问题分成许多小部分分布到多台计算机进行处
理,最后综合结果。
(2) 并行计算:同时使用多种计算资源解决计算问题的过程。
(3) 云计算:云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源
池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。
核心特点:
(1) 分布式计算:需要多台联网的分布在各处的计算机协同处理。并行的主体是计算机 (2) 并行计算:一般而言,指时间或者空间上并行。如流水线技术或强调单计算机多核
处理。并行的主体是处理器。
(3) 云计算:云计算是上述两种计算的商业发展。关键在能够对云内的基础设施等资源
(资源池)进行动态按需分配与管理。
2、 阐述移动计算的基本概念与技术特点?移动计算与分布式计算有何区别?
概念:
移动计算是使得人们可以在任何时间地点以任何方式接入网络服务的技术集。它使计算机或其它信息智能终端设备在无线环境下实现数据传输及资源共享,它的作用是将有用、准确、及时的信息提供给任何时间地点的任何客户。
区别:
与分布计算相比,移动计算具有以下一些主要特点:
(1)移动性:移动计算机在移动过程中可以通过所在无线单元与固定网络的节点或其他移动计算机连接。
(2)网络条件多样性:移动计算机在移动过程中所使用的网络一般是变化的。
(3)频繁断接性:由于受电源、无线通信费用、网络条件等因素的限制,移动计算机是主动或被动地间连、断接。
(4)网络通信的非对称性:移动节点的发送能力较弱。因此,下行链路和上行链路的通信带宽和代价相差较大。
(5)移动计算机的电源能力有限
(6)可靠性低:这与无线网络本身的可靠性及移动计算环境的易受干扰和不安全等因素有关。
3、 阐述Google云计算原理中的Chubby的设计目标是什么?
Chubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。设计目标如下:
(1) 高可用性和高可靠性;首要目标,在保证这一目标的基础上再考虑系统的吞吐
量和存储能力;
(2) 高扩展性;将数据存储在价格较为低廉的RAM,支持大规模用户访问文件 (3) 支持粗粒度的建议性锁服务;提供这种服务的根本目的是提高系统的性能 (4) 服务信息的直接存储;可直接存储包括元数据、系统参数在内的有关服务信息 (5) 支持通报机制;客户可以及时地了解到事件发生
(6) 支持缓存机制;通过一致性缓存将常用信息保存在客户端,避免了频繁地访问
主服务器
4、 阐述Paxos算法在Chubby中起什么作用?简述Paxos算法的原理?
作用:Chubby设计者借鉴了Paxos的两种解决机制:给协调者指派序号或限制协调者可以选择的值。
原理:1、选择一副本为协调者。 2、协调者从客户提交的值中选择一个,accept消息广播给所有的副本,其他的副本收到广播后,选择接受或者拒绝这个值,并将决定结果反馈。
3、协调者收到大多数副本接受信息后,认为达到了一致性,接着向相关副本发送一个commit消息 。
5、 阐述Google云计算原理中的Bigtable数据模型和系统架构?
数据模型
Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引
Bigtable对存储在其中的数据不做任何解析,一律看做字符串 Bigtable的存储逻辑可以表示为:
(row:string, column:string, time:int64)→string
系统架构
Bigtable 客户端Bigtable 主服务器执行元数据操作及负载平衡Bigtable 客户端程序库执行Open()操作Bigtable 子表服务器处理数据Bigtable子表服务器处理数据Bigtable 子表服务器处理数据Google WorkQueue负责故障处理及监控GFS保存子表数据及日志Chubby负责元数据存储及主服务器的选择Bigtable主要由三个部分组成:客户端程序库、一个主服务器和多个子表服务器
客户访问Bigtable服务时,首先要利用其库函数执行Open()操作来打开一个锁(实际上就是获取了文件目录),锁打开以后客户端就可以和子表服务器进行通信
和许多具有单个主节点分布式系统一样,客户端主要与子表服务器通信,几乎不和主服务器进行通信,这使得主服务器的负载大大降低
主服务主要进行一些元数据操作以及子表服务器之间负载调度问题,实际数据是存储在子表服务器上
6、阐述Google云计算原理中的分布式存储系统Megastore的核心技术是什么? 核心技术是复制。简述如下:
Megastore的数据复制是通过paxos进行同步复制的,也就是如果更新一个数据,所有机房都会进行同步更新,因为使用paxos进行复制, 所以不同机房针对同一条数据的更新 复制到所有机房的更新顺序都是一致的,同步复制保证数据的实时可见性,采用paxos算法则保证了所有机房更新的一致 性,所以个人认为megastore的更新可能会比较慢,而所有读都是实时读(对于不同机房是一致的),因为部署有多个机房,并且数据总是最新。
7、阐述Google云计算原理中大规模分布式系统的监控基础架构Dapper关键技术是什么?
关键技术是实现应用级的透明。 对于应用的程序员来说,是不需要知道有跟踪系统这回事的。如果一个跟踪系统想生效,就必须需要依赖应用的开发者主动配合,那么这个跟踪系统也太脆弱了,往往由于跟踪系统在应用中植入代码的bug或疏忽导致应用出问题,这样才是无法满足对跟踪系统“无所不在的部署”这个需求。(这一段可以不要)
做到这一点需要实现 轻量级的核心功能库和二次抽样技术。
轻量级核心功能库:将Dapper的核心监控实现限制在一个由通用线程(Ubiquitous Threading)、控制流(Control Flow)和RPC代码库(RPC Library Code)组成的小规模库基础上。
二次抽样技术:第一次抽样——实践中,设计人员发现当抽样率低至1/1024时也能够产生足够多的有效监控数据,即在1024个请求中抽取1个进行监控也是可行的,从而可以捕获有效数据
第二次抽样——发生在数据写入Bigtable前,具体方法是将监控id散列成一个标量z(0≤z≤1),如果某个区间的z小于事先定义好的汇总抽样系数,则保留这个区间并将它写入Bigtable,否则丢弃
8、阐述Google App Engine提供了哪些服务?Google App Engine的沙盒对开发人员进行哪些限制? 服务:
网址获取、邮件服务、Memcache 服务、图片操作、python程序框架、数据库服务、用户管理服务等等。
限制:
(1)用户应用程序只能通过Google App Engine提供的网址抓取API和电子邮件服务API来访问互联网中其他计算机;只能在标准接口上通过HTTP或HTTPS来进行
(2)应用程序无法对Google App Engine的文件系统进行写入操作,只能读取应用程序代码上的文件,并且该应用程序必须使用Data Store数据库来存储应用程序运行期间持续存在的数据
(3)应用程序只有在响应网络请求时才运行,且响应时间必须极短(几秒之内完成)。同时,请求处理的程序不能在自己的响应发送后产生子进程或执行代码 9、阐述当前主流分布式文件系统有哪些?各有什么优缺点?Google文件系统GFS特点体现在哪? 第一问:
目前几个主流的分布式文件系统除GPFS外,还有Hadoop HDFS、Lustre、FastDFS等。 第二问: HDFS
优点: 适合大数据处理(支持GB,TB,PB级别的数据存储,支持百万规模
以上的文件数量)
-- 适合批处理(支持离线的批量数据处理,支持高吞吐率)
-- 高容错性(以数据块存储,可以保存多个副本,容易实现负载均衡)
缺点:
-- 小文件存取(占用namenode大量内存,浪费磁盘空间)
-- 不支持并发写入(同一时刻只能有一个进程写入,不支持随机修改)
优点:是一个基于对象存储的分布式文件系统,比较成熟,适合大型集群,支持动态扩展。
缺点:它只有两个元数据管理节点 ,当系统达到一定的规模之后,管理节点会成为Lustre系统中的瓶颈。
优点:以文件为基本存储单位,解决了大容量存储的问题。特别适合以文件为载体的在线服务,简化文件的存取功能。
缺点:难以并行化处理(一个节点只能处理一个文件,无法同时处理一个文件);
-难以实现负载均衡(文件大小不同,无法实现负载均衡,用户需要自己控制文件大小)
第三问:
GPFS的主要优点有以下三点:
1)使用分布式锁管理和大数据块策略支持更大规模的集群系统,文件系统的令牌管理器为块、inode、属性和目录项建立细粒度的锁,第一个获得锁的客户将负责维护相应共享对象的一致性管理,这减少了元数据服务器的负担;
2)拥有多个元数据服务器,元数据也是分布式,使得元数据的管理不再是系统瓶颈; 3)令牌管理以字节作为锁的最小单位,也就是说除非两个请求访问的是同一文件的同一字节数据,对于数据的访问请求永远不会冲突. 10、阐述MapReduce与传统的分布式程序设计相比有何优点?例举传统分布式程序设计的优缺点?(真心找不到,当然我也没怎么理解,感觉传统的分布式应该改为传统的集中式,知道答案的补充一下)
(1)通过MapReduce这个分布式处理框架,能用于处理大规模数据。
(2)能将很多繁琐的细节隐藏起来,容错率高。比如自动并行化、负载均衡和灾备管理等,这样将极大地简化程序员的开发工作;
(3)MapReduce的伸缩性非常好;也就是说每增加一台服务器,其就能将差不多的计算能力接入到集群中,传统的在伸缩性方面都与MapReduce相差甚远。
二:将会从以下叙述题中选择题目解答。
1、参照以下MapReduce操作执行流程图,请叙述MapReduce操作过程?
(1)输入文件分成M块,每块大概16M~64MB(可以通过参数决定),接着在集群的机器上