分布式系统与云计算复习(应用题)
·
1、分布式系统的特性是什么?
高可靠性。数据分散存储在网络中的不同主机上,系统中存在数据冗余,当一台机器 发生故障时,可以使用另一台主机的备份。负载均衡 每台主机可以缓存本地最常用的数据,不需要频繁地访问服务器,减轻了 服务器的负担,减少了网络的流量。 服务器也可以对任务进行分配和优化,克服几种系统中央计算机资源紧张 的瓶颈满足不同的需要。用户可以根据自己的需要在自己的主机上安装不同的操作系统、应用软件,使用不同的服务,不再像集中式计算机系统那样受限于中央计算机的功能。高性价比。每台机器都能存储和处理数据,降低了对机器性能的要求,所以不必购买 昂贵的高性能机器,这大大降低了硬件投资成本
2、分布式系统的透明性是指什么?
指用户或程序员看不见连接多个机器的网络的存在。用户不需要关心系统实现的细节
3、分布式系统的主要通信方式是什么?
消息传递
4、分布式系统的两大主要目标是什么?
资源共享。将计算机通过网络连接起来,并在这个范围内有效地共享资源(硬件的共享,软件的共享,数据的共享,服务的共享 媒体流的共享(动态的资源形式))协同计算。并行计算,分布式计
5、分布式系统的架构分为哪些层?其中核心层是什么?
分布式应用、中间件层(应用软件)、计算机、消息传递、网络层中间件:分布式的核心层
6、给出评判系统性能的三个指标,并分别解释。
系统的吞吐能力:系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量;系统的响应延迟,指系统完成某一功能需要使用的时间;系统的并发能力,指系统可以同时完成某一功能的能力,通常也用 QPS 来衡量
7、请列出云计算的三大特点。
超大规模、虚拟化;高可靠性;通用性、高可伸缩性;按需服务、高性价比
8、云计算技术体系结构可以分为哪几层?与网格计算相比,云计算适合紧耦合计算 还是松耦合计算?
SOA 构建层、管理中间件层、物理资源层、资源池层与网格计算相比,云计算适合松耦合计算
9、给出云计算三种服务类型的中文名及英文缩写。
将软件作为服务 SaaS(Software as a Service)将平台作为服务 PaaS(Platform as a Service)将基础设施作为服务 IaaS(Infrastructure as Service)
10、Google 云计算技术的三大法宝是什么?
GFS: 分布式文件系统。MapReduce:并行计算的核心技术框架。BigTable:分布式的、稀疏的、多维的、易于扩展的、适用于海量数据的数据库
11、MapReduce 编程模型中最主要的两个函数是什么?分别有什么作用?
map( )和 reduce( )函数。从数据格式上来看,map( )函数接收的数据格式是键值对,产生的输出结果也是键值对形式,reduce( )函数会将 map( )函数输出的健值对作为输入,把相同 key 值的 value 进行汇总,输出新的键值对
12、MapReduce 适用于可以串行处理的应用程序还是可以并行处理的应用程序?
MapReduce 适用于可以并行处理的应用程序
13、亚马逊基础存储架构 Dynamo 有什么特点?
Dynamo 是 Amazon 提供的一款高可用的分布式 Key-Value 存储系统作为底层存储架构,Dynamo 采用了无中心的模式Dynamo 只支持简单的键/值(key/value)方式的数据存储,不支持复杂的查询Dynamo 中存储数据值的原始形式,即按位存储,不解析数据的具体内容可扩展性;快速、可预期的性能;简易的管理 内置的容错性,灵活性
14、在 Dynamo 中,向量时钟技术可以解决什么问题?
由于 Dynamo 中可能出现同一个数据被多个节点同时更新的情况,且无法保证数据副本的更新顺序,有可能导致数据冲突。采用向量时钟技术,Dynamo 中的向量时钟通过 [node,counter] 对来表示。 node 表示操作节点 counter 是计数器,初始值为 0 。节点每进行一次更新操作则计数器加 1 。解决冲突:通过客户端由用户来解决;另一种是系统自动选择时间戳最近的版本
15、在 Dynamo 的存储节点中采用的改进的一致性哈希算法相较于传统的一致性哈希算 法有什么区别?
传统:解决网络中的热点问题,使 DHT 可以真正地应用于 P2P 环境中。保证哈希运算结果充分分散到整个环上外,保证在添加或删除设备节点时只影响到其在哈希环中的前驱设备节点,不会对其他设备节点产生影响。降低在添加或删除节点时引起的节点间的数据传输开销。但可能造成环上节点分布的不均,且没考虑哈希环上不同设备节点性能差异。改进: 传统的基础上,引入虚拟节点,将整个哈希环划分成 Q 等份,每个等份称为一个数据分区。在存储数据时,每个数据会被先分配 到某个数据分区,再根据负责该数据分区的虚拟节点,最终确定其所存储的物理节点。以此减小数据分布不均衡的可能性,添加或删除设备节点时引起较小的数据传输
16、Dynamo 中采用了一种类似于 Gossip(闲聊)协议的技术有什么作用?
由于 Dynamo 采用了无中心的架构,每个成员节点都需要保存其他节点的路由信息;为了保证每个节点都能拥有最新的成员节点信息,Dynamo 中采用了一种类似于 Gossip(闲聊)协议的技术。Dynamo 中还通过 Gossip 来实现错误检测任何节点向其他节点发起通信后,如果对方没有回应,则认为对方节点失效
17、采用 Merkle 哈希树检测数据的一致性有什么优点?
保障数据传输的有效性;
18、微软云计算平台主要属于云计算服务的哪一类型?
Windows Azure Service Platform 属于 PaaS 模式
19、相比于行存储,列存储有哪些优点?
列存储以属性为单位,每次存储一个属性。列存储的好处在于处理时只需使用涉及的列数据, 且列存储更有利于数据的压缩。读取效率高,没有冗余 写入次数多,速度慢,消耗 cp
20、改进的一致性哈希算法中数据分区的好处是什么?
①减小数据分布不均衡的可能性②添加或删除设备节点时引起较小的数据传输
21、虚拟机的优势都有哪些
快速实现分布式部署,并且随时增减。自助升级配置,增加 IP,带宽等功能,升级过程无需停机。可以自助软/硬重启,一键配置 FTP、IIS 等。实时查看资源、流量、进程、服务的运行状态。完全拥有主机的 Administrator 或 Root 权限,可以个性化配置系统,自由安装应用软件和程序,部署各种互联网应用。、
1、Google 云计算的核心技术
Google 文件系统 GFS 、分布式数据处理 MapReduce 、分布式结构化数据表Bigtable、分布式锁服务 Chubby、分布式存储系统 Megastore、大规模分布式系统的监控基础架构 Dapper 、海量数据的交互式分析工具 Dremel 、内存大数据分析系统 PowerDrill 、 Google 应用程序引擎
GFS: 分布式文件系统。适用于 TB 级超大文件存储。master 节点是文件管理的大脑,负责存储和管理文件与物理块的映射,维护 metafile,处理临时文件,调度 chunk server 等。chunk server 是真正存储物理文件块。GFS 定位于由廉价服务器构成的超大集群,假定单个服务器存储是不可靠地,易失的,因此 GFS强调冗余和备份。每份文件块会同时存储于多个不同的 chunk server。上层客户请求文件时,首先与 master 节点交互,获取相关信息,随后 client 将直接与相应的某个 chunk server 通信并获取文件。在开源产品中类似实现有 HDFS。MapReduce:并行计算的核心技术框架。使得上层应用软件可以专注于业务逻辑实现,同时利用到分布式并行计算的好处。Map 接受和输出属性-值对,使得各节点工作进程可以并行计算它们的属性-值,并输出中间结果;Reduce 化简,输入 Map 处理的中间结果,进行合并运算,最终输出结果文件,返回给上层应用。一个典型案例:编写一个应用对图书馆过去 50 年的文献,统计最大词频。MapReduce 可以做的是,自动分割输入文件集合(任务分解),自动在多节点上克隆运算进程(map 进程组和 reduce 进程组),并分别指派任务,最终映射和化简都完毕后,将处理结果文件返回给原始客户应用 --- 对上层应用很好的屏蔽了并行计算。在开源实现中,对应有 Hadoop。BigTable:分布式的、稀疏的、多维的、易于扩展的、适用于海量数据的数据库。是非关系型数据库,尽管也沿用如表、行等传统概念。实质是 key-value 记录的集合。多维是说 key 有多个:行、列以及时间。稀疏是因为不同行的列可以完全不同。表、行可以自动分裂从而扩展。相同属性的列组成列族。相比而言,BigTable适合海量存储和非结构化数据(比如网络流量、多媒体、网页、日志等),操作大多数为读取和查询。而传统关系型数据库则易于实现复杂的结构化 DML 操作。典型案例是网页的存储:以反向 URL 为 key,网页内容以及引用为列,同时网页更新的时间标记作为另一个键。开源实现类似的有 HBase,HyperTable 等。
2、Amazon 云计算的核心技术
基础存储架构 Dynamo、弹性计算云 EC2 、简单存储服务 S3提供的服务:简单数据库服务 Simple DB 、简单队列服务 SQS 、弹性 MapReduce服务 、内容推送服务 CloudFront 、电子商务服务 DevPay 、支付服务 FPS
3、MapReduce
通过重新执行失效的地方来实现容错从数据格式上来看,map( )函数接收的数据格式是键值对,产生的输出结果也是键值对形式,reduce( )函数会将 map( )函数输出的健值对作为输入,把相同 key 值的 value 进行汇总,输出新的键值对。(1) 将原始数据处理成键值对<K1, V1>形式。 (2) 将解析后的键值对<KI,V1>传给 map0 函数,mapO 函数根据映射规则,将键值对<K1, V1>映射为一系列中间结果形式的键值对<K2, V2>。 (3) 将中间形式的键值对<K2, V2>形成<K2,{V2, ..}>形式传给 reduce()函数处理,把具有相同 key 的 value 合并在一起,产生新的键值对<K3, V3>。此时的键值对<K3, V3>就是最终输出的结果。
3、Dynamo 中的一致性哈希算法分析
过程:对于系统中的每个设备节点,为其分配一个随机的标记,这些标记可以构成一个哈希环。在存储数据时,计算出数据中键的哈希值,将其存放到哈希环顺时针方向上第一个标记大于或等于键的哈希值的设备节点上。
4、Merkle 哈希树分析
永久性故障处理机制在 节 点 失 效 超 过 了 设 定 时 间 后 , 如 果 没 有 发 现 节 点 可 以 重 用 ,则Dynano会认定该节点出现了永久性故障,例如磁盘损坏等。此时,Dynamo需要从其他数据副本进行数据同步。在同步过程中,为了保障数据传输的有效性,Dyamo 采用 Metkie哈希树技术”来加快检测和减少数据传输量。Menke哈希树可以为二叉树或多叉树,其中每个叶子特点的值为单个数据文件的哈希值,非叶子节点的值为该节点所有子节点组合后的哈希值。当采用 Merkle哈希树检测数据是否一致时,系统会先比较根节点的值,如果值相同则说明所有数据一致,否则需要继续比较,直到哈希值不同的叶子节点。Merkle哈希树 A 和 B 的根节点值不同。进一步比较其子节点,发现左子节点的值相同,表明左子节点所覆盖的所有叶节点对应的数据文件一致;而右子节点的值不同,则进一步比较其子节点,如此下去,直至发现原来在 4 中值 11 的叶节点在 B 中变成了 17,表明该叶节点对应的数据需要重新同步。通过对每个节点上每个区间的数据构建 Meikie哈希树,Dynamo 可以快速地进行数据比 对,检测数据的一到性,并大大减少了需要传输的数据量,提高了系统效率。
5、Gossip 协议
成员资格及错误检测由于 Dynamo 采用了无中心的架构,每个成员节点都需要保存其他节点的路由信息,以保障系统中各个节点之间数据转发顺畅。但由于机器或人为的因素,Dynamo中添加而或删除节点的情况时常发生。为了保证每个节点都能拥有最新的成员节点信息。Dymamo 中采用了一种类似于 Gossip 协议的技术,要求每个节点相隔固定时间(秒)从其他节点中任意选择一个与之通信。节点 A 向 B 发送保存的所有节点版本,B 索要的节点信息节点 B 向节点 A 发送比 A 新的节点信息 Dynamo 中还通过 Gossip 来实现错误检测任何节点向其他节点发起通信后,如果对方没有回应, 则认为对方节点失效为了避免新加入的节点之间不能及时发现其他节点的存在,Dynamo 中设置了一些种子节点(Seed Node)。种子节点和所有的节点都有联系。当新节点加入时,它扮演一个中介的角色,使新加入节点之间互相感知
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)