云计算简答题(二)

云计算知识点-CSDN博客

云计算选择题及答案-CSDN博客

云计算试题及答案-CSDN博客

云计算简答题-CSDN博客

云计算简答题(二)-CSDN博客

云计算单选题及答案-CSDN博客

云计算多选题及答案-CSDN博客

云计算选择题(二)-CSDN博客 

  1. 简述AWS的EC2,S3,VPC的基本功能,以及如何使用EC2访问S3,如何在VPC中部署EC2。

EC2是AWS最早提供的IaaS云计算服务,它具有任何一台个人PC所具备的功能。根用户可以完全控制EC2实例。与个人PC可以部署在局域网中类似,EC2可以被部署在AWS的VPC中。 S3是AWS继EC2之后推出的又一个IaaS云计算服务。用户无需自选区域(AWS region),由AWS自动就近分配一个region。因此,EC2访问S3,需要通过网络,以及权限认证。这个认证方式,可以是密钥的形式,也可以是通过AWS IAM 角色的分配来实现。 VPC是AWS为用户提供的私有网络配置,通过对外的Internet网关和对内的弹性网络接口实现内网的联通和外网的访问。 使用EC2访问S3: (1)进入IAM配置界面,创建策略 (2)进入角色配置界面,关联创建的策略 (3)将创建的角色附加到EC2 在VPC中部署EC2: (1)创建一个VPC (2)为路由表添加子网 (3)创建一个VPC安全组 (4)在VPC上运行EC2实例

  1. 简述非对称加密如何保护数据的真实性。

在非对称加密算法中,有公钥和私钥两种密钥,其中,公钥是公开的,不需要保密,私钥由个人持有,必须妥善保管和注意保密。加密和解密使用两种不同的密钥,是它得名的原因。 公钥私钥的使用原则 ①每一个公钥都对应一个私钥。 ②密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 ③如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。 ④如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。 信息交换的基本过程: A(客户)想给B(服务器)发送一段文字,但是不想让别人看到,因此想使用非对称加密方法来加密这段文字,当然,B需要有一对公钥和私钥: ① B将他的公钥发送给A ② A用B给他的公钥加密这段文字,然后传给B ③ B用他的私钥解密A发过来的消息,这里要强调的是,只要B的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。 通过这几步,B就能成功收到A发送的信息,同时又达到了保密的目的。 反之,如果B使用私钥加密,A使用公钥解密,如果能解开就代表这串信息来自于B,保证了信息的真实性。

  1. GFS的写操作如何实现原子性与一致性?

GFS的写操作分为write类型操作和append类型的操作。Write类型的写操作,不具备原子性,因此,单用户的一个成功的write操作具有一致性和界定性,但多用户并发的write操作如果成功,是不具界定性的一致。append类型的写操作,具备原子性,因此,无论单用户还是多用户并发,都具有界定性,但是会夹杂着不一致的数据。

  1. 试描述MapReduce的Shuffle过程

分Map阶段的Shuffle和Reduce阶段的Shuffle。其中,map阶段的shuffle包括分区、溢写、排序、合并、归并等子过程,reduce阶段的Shuffle包括溢写和归并。可分别简单描述一下各自过程。

Map端的Shuffle过程:

在Map端,经过map任务处理后的数据——一系列<k,v>键值对,首先进入缓存,当缓存的数据到达一定容量(缓存空间的溢写比)的时候,就会启动Map端的溢写过程,把map任务的输出结果溢写到磁盘里,在溢写到磁盘之前,会经历Map端的Shuffle处理阶段——分区、排序、合并,在溢写到磁盘之后,多个溢写文件会经历归并过程。

Mapreduce的输入和输出都是保存到分布式文件系统中的,而中间结果是保存到本地磁盘中的,所以Shuffle过程会涉及大量的本地磁盘操作。

分区数据:缓存中每个经由map任务处理后的输出键值对<k,v>中的key被哈希函数哈希后再用reduce任务的数量进行取模,这样就把一系列<k,y>键值对分成多个区(分区数目对应reduce任务数量),每个区的数据交给对应的reduce(一个溢写文件的一个区对应一个reduce任务)去处理,实现并行计算。

排序数据:经过分区后的数据,对于每个分区的所有键值对,会按照key进行排序。

缓存数据:经过分区和排序后,就会被溢写到磁盘,每一次溢写都会被生成一个溢写文件,并清空缓存中相应的数据。

归并文件:每一次溢写都会被生成一个溢写文件,这样随着map任务的不断执行,溢写的文件会在磁盘内越堆越多,由此,在map任务完成后,会对磁盘中的溢写文件执行文件归并,把多个溢写文件归并成一个大的溢写文件

Reduce端的Shuffle过程:

领取数据:当所有的map任务都完成之后,Reduce端会收到通知去Map端上把属于自己处理的分区数据领取回来,由于存在多个Map端,自然Reduce端会分出多个线程去不同的Map端上领取数据。

归并数据和文件:当所有数据领取回来之后,会先放到缓存里,当缓存的数据满了之后,再溢写到磁盘上,在溢写到磁盘之前也会对数据进行一遍归并操作,即同样key的数据会被归并生成一个溢写文件,这样随着Reduce拉取回来的数据不断增多,缓冲区满了一遍又一遍,自然会生成多个溢写文件。

当Map端的数据全部被领回来的时候,磁盘中的溢写文件也会被归并成大的溢写文件。把磁盘上的多个溢写文件归并成大的溢写文件,可能需要执行多轮归并,每轮归并操作可以归并的文件数量是由参数io.sort.factor的值控制的(默认是10),假设磁盘产生了50个溢写文件,每轮可以归并10个溢写文件,则需要经过5轮归并,生成5个溢写文件。

磁盘中经过多轮归并生成的若干个文件不会被继续归并成一个大文件,而是在内存中进行归并,归并完毕后输入给reduce任务,这样可以减少磁盘读写开销。

需要说明的是在多轮归并中,每轮归并所归并的文件数选取策略会尽可能地使最后一轮的归并文件数足够io.sort.factor的值。因此如果有40个文件,我们并不会在四趟中每趟合并10个文件从而得到4个文件。相反,第一趟只合并4个文件,随后的三趟合并完整的10个文件。在最后一趟中,4个已合并的文件和余下的6个(未合并的)文件合计10个。

  1. 简述HDFS的优缺点。

HDFS的优点:

1)高容错性。

2)适合大数据处理。

3)流式文件访问。

4)可构建在廉价的机器上。

HDFS的缺点:

1)不适合低延时数据访问。

2)不适合大量小文件的存储。

3)不适合并发写入、文件随机修改。

6. 简述MapReduce的基本设计思想。

1)分而治之

对大数据并行处理采用“分而治之”的设计思想。如果一个大数据文件可以分为具有同样计算过程的多个数据块,并且这些数据块之间不存在数据依赖关系,那么提高处理速度的最好办法就是采用“分而治之”的策略对数据进行并行化计算。

2)抽象成模型

MapReduce把函数式编程思想构件成抽象模型-Map和Reduce。MapReduce借鉴了函数式程序设计语言Lisp中的函数式编程思想定义了Map和Reduce两个抽象类,程序员只需要实现这两个抽象类,然后根据不同的业务逻辑实现具体的map函数和reduce函数即可快速完成并行化程序的编写。

3)上升到架构

MapReduce以统一架构为程序员隐藏系统底层细节。并行计算方法一般缺少统一的计算框架支持

7.请简答ACID和BASE的含义。

ACID是传统的关系数据库特性,包括原子性(事务中的事务要么都做,要么都不做),一致性(系统必须处于强一致性状态),隔离性(一个事务的执行不能被其他事务干扰)和持久性(一个已提交的事务对数据库中的数据改变是永久性的)。
BASE是云计算环境下的数据存储特性,包括基本可用性(系统能够基本运行,一直提供服务),柔性状态(系统不需要一直保持强一致状态)和最终一致性(系统在某一时刻后达到一致性要求)。从分布式领域的CAP理论角度看,ACID追求一致性,BASE更加关注可用性。

8. 如果一个Job有N个63m的小文件组成,请计算最少需要多少个map任务节点?

在split与block大小不同时,Hadoop提供另一种计算map任务数的方法:a.默认的map数default_num=tal_size/block_size;b.可以通过mapred.map.tasks设置期望的map数,但是这个数只有在大于default_num时才会生效;goal_num=pred.map.tasks;c.可以通过mapred.min.split.size设置每个task处理的split大小,但是这个数只有在大于block的时候才会有效。split_size=x(mapred.min.split.size,block_size);split_num=tal_size/split_size;d.compute_map_num=n(split_num,max(default_num,goal_num));e.final_map_num=x(compute_map_num,input_file_num); 
因此,如果想减少map数,可以把mapred.min.split.size设置的大一些;然而,如果要处理许多个小文件,依然想减少map数,则需要把n个小文件合并为一个大文件,再将mapred.min.split.size调大一点才能实现。

9. 请简介AWS对于身份与访问管理云安全机制的具体实现。

AWS的IAM是一种Web服务,可以帮助AWS客户安全地控制对AWS资源的访问。AWS客户可以使用IAM控制对哪个用户进行身份验证和授权以使用资源。当AWS客户首次创建AWS账户时,最初使用的是一个对账户中所有AWS服务和资源有完全访问权限的单点登陆身份。此身份称为AWS账户的根用户。但是不建议使用跟用户执行日常任务,即使是管理任务。然后妥善保存根用户凭证,仅用它们执行少数账户和服务管理任务。因此,AWS用户也要为自己创建一个IAM用户,并授予该IAM用户管理权限,以使用该IAM用户执行所有的操作。在为访问本账户的人员创建单独的IAM用户时,AWS客户可授予每个IAM用户一组独特的安全凭证。AWS客户还可以向每个IAM用户授予不同的权限。如果有必要,AWS客户还可以随时更改和撤销IAM用户的权限。

10. Zookeeper集群中节点的数目为什么必须要奇数个?

在正常工作期间,Zookeeper的任务有统一命名、应用配置等管理任务,实现Zookeeper小集群内部节点之间关于各种状态的统一。在非正常工作情况下,即master节点不可用,需要重新启动新节点接替master任务时,行使选举,选举出新的master。而Zookeeper的集群数量一般为奇数,是为了保证有过半Server可用,整个系统即保持可用性,方便区分过半这个概念。

11. 简述Chubby的实现对CAP的意义。

Chubby强调系统的可靠性以及高可用性等,而不追求高吞吐量以及协调系统内存储大量数据。其理论基础是Paxos,通过相互通信并投票,对某个决定达成一致性的认识。因此Chubby的实现对CAP的一致性和可用性做出了巨大的贡献。Chubby中主要存储一些管理信息和基础数据,其目的不在于数据存储而是对资源的同步管理,不推荐在Chubby中存储大量数据。同时Chubby提供了订阅机制,即客户端可以订阅某些存储在Chubby上的数据,一旦该数据发生改变,Chubby就会通知客户端。如:将分布式集群的一份配置文件存在Chubby上,集群中所有的机器都订阅这份配置文件,一旦配置文件发生改变,所有的节点都会受到消息,根据配置文件做出改变。

12. 请列举传统分布式计算的优缺点。

传统的分布式计算由分布在不同地理位置上的多个处理机或计算机,通过网络互联,实现资源共享和协同工作。呈现给用户的是单个完整的计算机系统(这个特点也叫分布式系统的透明性)。因此,分布式计算相比集中式计算,具有可扩展性、容错性和快速响应等优点,但是在数据保密性和数据同步方便面临着挑战。

13. 如何理解云安全机制?

加密(encryption)机制是一种数字编码系统,专门用来保护数据的保密性和完整性,用来把铭文数据编码成受保护的、不可读的格式。加密技术通常依赖于称为加密部件的标准化算法,把原始的明文数据转换成加密的数据,称密文。当对明文进行加密时,数据与一个称为密钥的字符串结成对,其中密钥是由被授权的各方建立和共享的秘密消息。密钥用来把密文解密回原始的明文格式。加密机制可以帮助对抗流量窃听、恶意媒介、授权不足和信任边界重叠等安全威胁。例如,试图进行流量窃听的恶意服务代理如果没有密钥,就不能对传输的消息解密。

14. 请简述分布式系统的CAP定理。

CAP指出,一个分布式系统不可能同时保证一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)。对于一个大型的分布式计算机网络存储系统,可用性和可扩展性是首要保证的,那么唯一可以牺牲的只有一致性。对于绝大多数场景而言,只要达到最终一致性即可(非强一致性)。在早期金融网络中,要求强一致性,即收付款双方要求同步到账和扣款。今天的金融系统绝大多数都是规模庞大的分布式系统,要求强一致性只可能会造成瓶颈,无法保证实时一致性。

15. 简述MapReduce计算模型的原理。

MapReduce属于MIMD类型,即多指令流多数据流类型的分布式并行计算系统。MapReduce计算模型借鉴了函数型语言(如LISP)中的内置函数map和reduce的概念,其本质思想是基于分治法(Divide-and-Conquer)将大数据集划分为小数据机,小数据划分为更小的数据集,将最终划分的小数据分布到集群节点上以并行方式完成计算处理,然后再将计算结果递归融汇,得到最后结果。

16. 试简述Paxos算法对于Zookeeper的意义。

paxos算法是Zookeeper的核心。一切一致性协议都是paxos的变种。Chubby或者Zookeeper其中采取的算法也是变种中的其中之一。在正常工作期间,Zookeeper的任务有统一命名、应用配置等管理任务,实现Zookeeper小集群内部节点之间关于各种状态的统一。在非正常工作情况下,即master节点不可用,需要重新启动新节点接替master任务时,行使选举,选举出新的master。因此,Paxos实现的一致性,本质上是共识一致性,确保了系统的可用性。

17. 简述一致性哈希算法与Dynamo环的原理。

一致性哈希算法是目前主流的分布式哈希表(DHT)协议之一,于1997年由MIT提出。一致性哈希算法通过修正简单哈希算法,解决了网络中的热点问题,使得HDT可以真正地应用于P2P环境中。一致性哈希算法的基本过程为:对于系统中的每个设备节点,为其分配一个随机的标记,这些标记可以构成一个哈希环。在存储数据时,计算出数据的键值的哈希值,将其存放到哈希环顺时针方向上第一个标记大于或等于键的哈希值的设备节点上。

  • 应用题

1. 在集群配置的管理中,在传统的方式下,如果要修改集群中每个节点的配置信息,操作起来比较繁琐。如何设计一个应用,可以解决这类问题。简述设计的主要思路。

为了实现配置信息的集中式管理和动态更新,采用发布/订阅模式将配置信息发布到Zookeeper节点上,供订阅者动态获取数据。为了模拟实现集群配置信息的订阅发布,具体实现思路如下所示:

(1)首先需要启动Zookeeper服务,规划集群配置信息存放的节点/config。

(2)然后通过ConfigWatcher类对/config节点注册监视器watcher,监控集群配置信息变化。

(3)最后通过ConfigUpdater类不断更新/config节点配置信息,从而模拟实现集群配置信息订阅发布效果。

2. 简述云计算这门课你学到了哪些内容。

知识点:Hadoop实现并行分布式计算、MapReduce框架、YARN管理框架可以支持不同的应用接口、HBase是面向列的数据库、Hive是数据仓库、Zookeeper实现分布式协调服务、Mahout实现机器学习相关的算法、Pig提供一种高层的抽象语言,实现大规模数据集的分析、Sqoop实现SQL和Hadoop之间数据交换、Flume实现日志采集、Kafka分布式消息系统、Storm实时流计算框架、Spark内存计算框架、HDFS实现分布式文件存储等大数据相关的知识点。

3. 2020年全国春运将于1月10日(明日)启动,预计发送旅客30亿人次。30亿人次旅客中,铁路4.4亿人次。网购火车票遭遇12306网站“崩溃”怎么办?为确保旅客顺利购票,铁路部门正在着手对12306网站售票系统进行优化和扩容,计划从去年1500余万的日售票能力扩大到今年的2000余万。试给出一个系统优化的建议方案。

一.从网站的架构适应性方面来看,12306是一个典型的需要动态伸缩、灵活性强的服务来支撑的网站,因此云计算平台非常适用于12306平台。例如云计算的伸缩性很适合平衡高峰期和低谷期。因此,可以考虑将网站放到第三端的云平台上,在这一过程中,要注意以下的问题:
①首先要有评估期,可以分别用Amazon公司和Google公司或者其他公司的云平台进行高并发测试,观察哪个云计算平台更加适合自己的网站。
②确定用Paas还是Iaas,我个人感觉用Paas更加适合12306网站,因为Paas是平台即服务,第三方提供一个平台,你可以在这个平台上进行开发,不用考虑硬件问题,所以很大程度上可以缓解高并发的对网站带来的影响。除此之外,Paas的多租户资源池架构,负载均衡架构和动态可扩展架构也非常适合于12306网站。例如在高并发购票来临时,通过负载均衡架构和动态可扩展架构,可以合理分配空间,利用资源,降低高并发带来的损害。
③虚拟化是云计算的基石,可以降低企业的运营成本,提高资源利用率,因此可以将一些运算量和I/O要求不高的业务迁移到虚拟化。在低流量时段可以销毁节点,使物理实体机处于低功耗状态下运行,在高峰来临时可以迅速部署上线提供服务。同时要注意在迁移过程中,要做好数据的备份和回滚设计。
④可以考虑把网站搭载在多个云平台上,当高并发来临时,一个云平台如果实在承受不住,可以迅速转到另一个云平台上提供服务。
⑤可以考虑带宽的问题,做到成本与收益相符合。
二.从网站的整体架构来看,一个高并发的网站还需要考虑其他层的优化问题。例如①前端进行优化,减小业务带来的流量问题。②运用缓存,在高并发的时候可以减少后端存储的I/O压力。③引入代理层,可以拆分业务,例如将登录、注册、车票查询等业务分开,这样即使查询业务出现延迟堵塞,也不会影响到用户的支付。④开发与本网站相适应,配合的数据库。⑤采用负载均衡策略。⑥在业务层采取策略,例如对购票时间点进行分流,减少高并发的出现情况。

4. 2019年双11,支付宝自主研发的分布式数据库OceanBase每秒处理峰值达到6100万次。2019年10月2日,数据库领域最权威的国际机构国际事务处理性能委员会(TPC,Transaction Processing Performance Council)在官网发表了最新的TPC-C基准测试结果。蚂蚁金服自主研发的金融级分布式关系数据库OceanBase以两倍于Oracle(甲骨文)的成绩,打破数据库基准性能测试的世界纪录,成为全球数据库演进史的重要里程碑。从2017年开始,OceanBase数据库开始对外开放,服务包括银行、保险等金融机构。OceanBase已在蚂蚁金服和阿里巴巴的业务系统中得到了广泛应用,凭借强劲的性能成为过去多年“双11”支付宝交易处理系统的守护神。数亿人能够随时随地网购、移动支付,背后靠的都是OceanBase数据库的力量。OceanBase在技术上对标的是Google Spanner数据库。试从CAP的角度,讲述一下云计算的十年发展对分布式系统的贡献。 

CAP说的是对于一个分布式计算系统来说,不可能同时满足一致性,可用性和分区容忍性。在实际的生活中,我们通常必须要保证可用性和分区容忍性,对于一致性,很多情况下只需要满足最终一致性即可。这就导致例如支付宝的一些业务可能没有办法实现的很好,例如蚂蚁金服属于金融服务,要求高性能,低成本和强一致,但是在例如双十一这种时期,如此高并发的情况下,如何保证一致性和可用性以及分区容忍性是很大的一个难题。而云计算的发展很大程度上解决了这一问题,例如阿里自主开发的飞天云,采用协调服务(女娲的分布式底层服务,基于Paxos算法,采用分布式系统(盘古),也是使用Paxos算法,很大程度上保证了一致性的问题。还有,阿里自主研发的SOFA DTX分布式中间件基于两种理论实现了 两种模式:基于BASE理论的TCC模式和基于ACID理论的FMT模式。在极限峰值情况下,支付宝向淘宝发送Confirm,确保五分钟后可以执行,淘宝就可以放心的告诉用户可以买了。而峰值通常持续时间不长,过了峰值之后就可以释放空间和资源处理“蓄洪”的那部分操作,实际上还是延迟提交,是最终一致性的体现。但是异步只在极限情况下采用,过了双十一零点,又是同步和强一致了。除此之外,在软件方面,淘宝早期采用的是Oracle,MySQL开源数据库,后来阿里自主研发OceamBase,与分布式事务相互配合,共同实现数据的实时一致性。正是有了这些技术,阿里才能够保证在高并发的情况下也能正常的提供业务。实际上,这些优势很大程度上都来源于云计算的发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值