《大数据计算》课程考试题目(含答案)

《大数据计算》课程考试题目

选择

1.下面哪个程序负责 HDFS 数据存储。

a)NameNode  b)Jobtracker  c)Datanode  d)SecondaryNameNode  e)tasktracker

答案: C Datanode

 

2. HDFS 中的 block 默认保存几份?

a)3 份 b)2 份 c)1 份 d)不确定

答案: A 默认 3 份

 

3. Hadoop 作者

a)Martin Fowler  b)Kent Beck  c)Doug cutting

答案: C Doug cutting

 

4.关于 SecondaryNameNode 哪项是正确的?

a)它是 NameNode 的热备     b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

d)SecondaryNameNode 应与 NameNode 部署到一个节点

答案: C。

 

5.下列哪项通常是集群的最主要瓶颈

a)CPU   b)网络 c)磁盘IO  d)内存

答案:C 磁盘

首先集群的目的是为了节省成本,用廉价的 pc 机,取代小型机及大型机。小型机和大型机有什么特点?

1.cpu 处理能力强

2.内存够大,所以集群的瓶颈不可能是 a 和 d

3.如果是互联网有瓶颈,可以让集群搭建内网。每次写入数据都要通过网络(集群是内网),然后还要写入 3 份数据,所以 IO 就会打折扣。

 

、填空题

1. Hadoop三种运行的模式: 单机版     伪分布式   和 分布式   。

 

2.HDFS 默认 Block Size是  64  MB。(填128也正确)

 

3. MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段。

 

4.Map/Reduce框架由一个单独的master JobTracker 和每个集群节点一个slave TaskTracker共同组成。

 

5.MapReduce确保每个reducer的输入都是按键排序的。系统执行排序的过程(即将map输出作为输入传给reducer)称为shuffle

 

简答

题目1:什么是分布式计算

答:分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通过网络互联的计算机。这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计算机程序称为分布式计算程序;分布式编程就是编写上述程序的过程。

 

题目2:假如Namenode中没有数据会怎么样?

没有数据的Namenode就不能称之为Namenode,通常情况下,Namenode肯定会有数据。

 

题目3:在Hadoop HDFS中集群中的DataNode节点需要周期性NameNode发送什么信息?

答:在Hadoop HDFS中,DataNode需要周期性地向集群中的DataNode Master节点发送心跳信息和块报告。接收到心跳信息,说明该DataNode节点工作正常;块报告包含了DataNode节点上所有块的列表以及块id与磁盘文件存储的映射关系。

 

题目4:在Hadoop HDFS中SecondaryNameNode主要作用是什么

答:辅助NameNode,分担其工作量;定期合并镜像文件(fsimage)和编辑日志文件(fsedits),并推送给NameNode;在紧急情况下,可辅助恢复NameNode节点。

 

题目5:请简要说明Hadoop YARN一级调度管理与二级调度管理?

答:YARN作为分布式集群资源管理框架,可用于集群资源的管理以及应用的调度。YARN的一级调度管理包括计算资源管理和Application生命周期的管理;二级调度管理包括Application内部计算模型的管理以及多样化计算模型的管理。

 

论述

题目1:MapReduce中排序发生在哪几个阶段?

答:一个MapReduce作业由Map阶段和Reduce阶段两部分组成,这两个阶段会对数据排序,从这个意义上说,MapReduce框架本质上就是一个Distributed Sort。在Map阶段,Map Task会在本地磁盘输出一个按照key排序(采用的是快速排序)的文件(中间可能产生多个文件,但最终会合并成一个),在Reduce阶段,每个Reduce Task会对收到的数据排序,这样,数据便按照key分成了若干组,之后以组为单位交给reduce()处理。很多人的误解在Map阶段,以为如果不使用Combiner便不会排序,这是错误的,不管你用不用Combiner,Map Task均会对产生的数据进行排序(如果没有Reduce Task,则不会排序,实际上Map阶段的排序就是为了减轻Reduce端排序负载)。

 

题目2:请画出云计算的三层服务模型?

答:一般而言,云计算架构可以用三层SPI模型来表述。

1.基础设施即服务(IaaS,Infrastructrue as a Service)

这种把主机集中管理,以市场机制通过虚拟化层对外提供服务,用按使用量收费的盈利模式,形成了云计算的基础层。这就是基础设施即服务(IaaS,Infrastructrue as a Service),构成了云计算的基础层。

2.平台即服务(PaaS,Platform as a Service)

平台即服务(PaaS)是指把一个完整的应用程序运行平台作为一种服务提供给客户。在这种服务模式中,客户不需要购买底层硬件和平台软件,只需要利用PaaS平台,就能够创建、测试和部署应用程序。
3.软件即服务(SaaS,Software as a Service)

在其概念可以这样来定义:把软件部署为托管服务,用户不需要购买软件,可以通过网络访问所需要的服务,或者把各种服务综合成自己的需要,而客户按照使用量付费。SaaS的出现彻底颠覆了传统软件的运营模式。它不仅仅从价格上,交付模式上,实施风险上带来了明显改观。在云计算上,SaaS有了更好的发展空间。而云计算的推出,给SaaS提供了更好的生态环境。这就形成了云计算的第三层:软件即服务(SaaS,Software as a Service)。
    这三个层结合起来,就形成了典型的云计算的SPI模型。可以预期,在这个模型上,大量的创新企业可以获得更好的生存空间。

 

 

 

题目3CF(协同过滤)的原理?

协同过滤的主要目标:由于网络信息量的增多,用户往往被淹没在信息的海洋里,很难

很轻易的找到自己感兴趣的topic。协同过滤就是为了把用户最可能感兴趣的信息推送给用户。

协同过滤的方法: model-base,user-base,item-base,content-base。

1.user-based:搜集用户profile。对于一个active user,找到与其比较接近(或者相似)的几个neighbour。使用这些neibour 对active user 的interest 进行预测,把那些潜在的interest推荐给active user。

3.item-base:与user-based 相对应。协同过滤推荐根据用户对相似项的评分预测该用户对目标项的评分,它基于这样一个假设:如果大部分用户对一些项的评分比较相似,则当前用户对这些项的评分也比较相似。对每个item 寻找几个neighbour。例如如果item A 与item B是一个neighbour pair,对于一个active user,如果其对A 评价很高,或者有很高的兴趣,那么它极可能对B 感兴趣,这样B 就是一个潜在的interest.

4.content-based:根据item 的内容与用户历史兴趣度进行分析关联,它的一个前提假设就是如果一个用户在过去一段时间对某item 有较高的评价,那么在未来也会保持这种interest。

这样就可以根据item 之间的内容接近程度进行推荐。它有很大的缺陷,首先没有结合用户反馈,虽然一个item 具有很高的可推荐性,但是如果大家都对其评价较差,那么这也许是一个不好的推荐item;其次就是其对item 内容进行分析也只能是一个方面,不能全面深刻的描述一个item;再一个就是推荐的内容有限;当系统仅仅根据用户资料或项目描述来进行推荐的时候,用户被限制在只能得到与以往熟悉的内容相类似的项目。这样不利于挖掘用户潜在的兴趣。

 

题目4:请谈一谈你对HDFS的认识

HDFS采用的是Maser/Slave模型,一个HDFS cluster包含一个NameNode和一些列的DataNode,其中NameNode充当的是Maser的角色,主要负责管理HDFS文件系统。里面存储着描述信息,处理来自客户端的请求;DataNode主要是用来存储数据文件,HDFS将一个文件分割成多个Block,这些Block可能存储在一个DataNode上或者是多个DataNode上。

 

HDFS支持传统文件系统的目录结构,应用程序能够创建目录directory,在这些目录中存储文件,创建文件,移动文件和删除文件,重命名文件,但是不支持硬链接和软连接。 

系统需要进行分布式管理,这样可以通过高性能的Map-Reduce对系统的数据进行高效地管理和处理,使数据分散地存储到每个节点上,也令每个任务在节点上并行执行,减少系统的开销。

由于HDFS系统存储的数据量非常大,为了保证数据的完整性和数据在破坏或者丢失后能够充分地恢复,所以需要加入冗余和容错技术。冗余是指备份数据和信息。容错是指通过备份的数据和信息,使系统自动恢复到事故发生之前的状态。

HDFS将一个发文件分割成Block,然后将这些Block存储到不同的DataNode中,那么如何保证如果一个DataNode死掉,保证数据的完整性,通常的技术就是进行数据的备份,HDFS同样使用的是这一策略。

 

题目5:请简述Map-Reduce算法的原理?

Map-Reduce的目标是在面对节点失效的情况时能够保证大量的文件和数据依然可用。

初始化时数据被分割成许多分块的小数据,这些数据都是以<key,value>的形式存储。用户程序会分配一个Maser 进程和许多worker 进程。

任务开始时,Maser 将用户程序的工作分成两种类型的任务(map 任务和reduce 任务),并将这些任务分配给相应的工人(workers)。Maser 的责任如下:给map 工人和reduce 工人分配相应的任务,检测是否有工人进程死掉,将Map 任务处理后的结果通知给Reduce 任务。

得到Maser 的Map 工作任务的指令后,Map 工人开始工作。Map 工人从input中获取分块的数据,并通过其中数据存储的方式对数据进行处理,并将处理的中间结果(<key,value>形成的链表)存放在本地磁盘中。

得到Maser 的有关Map 处理结果的通知后,Reduce 任务开始工作。Reduce 工人把每个map 工人的本地磁盘中的内容进行整合,形成有序的最终结果,并将结果写入到输出文件中。

假如一个工人进程失败了,该工人的任务就被分配给其他的工人进程。如果一个Maser 进程失败了,那么整个Map-Reduce任务就会终止。

1.输入文件分成M 块,每块大概16M~64MB(可以通过参数决定),接着在集群的机器上执行分派处理程序。

2.M 个Map 任务和R 个Reduce 任务需要分派,Maser 选择空闲Worker 来分配这些Map 或Reduce 任务。

3.Worker 读取并处理相关输入块,Map 函数产生的中间结果<key,value>对暂时缓冲到内存。

4.中间结果定时写到本地硬盘,分区函数将其分成R 个区。中间结果在本地硬盘的位置信息将被发送回Maser,然后Maser 负责把这些位置信息传送给ReduceWorker。

5.当Maser 通知执行Reduce 的Worker 关于中间<key,value>对的位置时,它调用远程过程,从Map Worker 的本地硬盘上读取缓冲的中间数据。当Reduce Worker读到所有的中间数据,它就使用中间key 进行排序,这样可使相同key 的值都在一起。

6.Reduce Worker 根据每一个唯一中间key 来遍历所有的排序后的中间数据,并且把key 和相关的中间结果值集合传递给用户定义的Reduce 函数。Reduce 函数的结果写到一个最终的输出文件。

7.当所有的Map 任务和Reduce 任务都完成的时候,Maser 激活用户程序。此时MapReduce 返回用户程序的调用点。

 

  • 8
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿龙丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值