云计算与大数据第15章 分布式大数据处理平台Hadoop习题带答案

15章 分布式大数据处理平台Hadoop习题

15.1 选择题

1、分布式系统的特点不包括以下的(  D  )。

A. 分布性     B. 高可用性        C. 可扩展性     D.串行性

2、Hadoop平台中的(  B  )负责数据的存储。

A. Namenode   B. Datanode         C. JobTracker  D. SecondaryNamenode

3、HDFS中block的默认副本数量是(  A  )。

A.3          B.2               C.1           D.4

4、下面与HDFS类似的框架是(  C  )。

A. NTFS         B. FAT32                 C. GFS              D. EXT3

5、以下关于SecondaryNamenode的说法正确的是(  B  )。

A.是元数据节点出现故障时的备用节点

B.周期性地将元数据节点的命名空间镜像文件与修改日志进行合并

C.与元数据节点之间无需交互

D.对内存没有要求

6、下列关于MapReduce的说法不正确的是(  C  )。

A.MapRecuce可用于处理分布在几千台机器上的数据                 

B.MapReduce是一种处理大数据的分布式计算模式      

C.MapReduce程序只能用C语言编写           

D.MapReduce隐藏了并行计算的细节,方便使用

7、下面哪一个是一种编程模型,将大规模的数据处理工作拆分成互相独立的任务然后进行并行处理(  A  )。

A.MapReduce         B.HDFS      C.HBase        D.Pig

8、HBase基于(  A  )存储底层数据。

A.HDFS           B.Hadoop      C.内存         D.MapReduce

9、下面关于HBase错误的是(  A  )。

A.不是开源的        B.面向列的     C.分布式的       D.NoSQL数据库

10、配置Hadoop时,JAVA_HOME包含在(  B  )配置文件中。

A.Hadoop-default.xml         B.hadoop-env.sh    

C.Hadoop-site.xml              D.Configuration.xsl

15.2 填空题

1、HDFS的基本数据存储单位是(  数据块  )。

2、MapReduce按照时间顺序可以分为输入分片、(  Map阶段  )、Combiner阶段、(  Shuffle阶段  )和(  Reduce阶段  )。

15.3 简答题

1、Hadoop主要有哪些优点?

答:

  1. 扩容能力强。Hadoop 能可靠存储和处理PB级的数据。
  2. 成本低。Hadoop 能通过普通机器组成的服务器集群来分发和处理数据,服务器集群规模可达数千个节点。
  3. 效率高。Hadoop 能通过分发数据,在数据所在的节点上并行地进行处理,使得处理非常快速。
  4. 可靠性。Hadoop 能自动维护数据的多份副本,并在任务失败后自动地重新部署计算任务。
  5. 高容错性。Hadoop能在不同的节点上维护多份副本,对于访问失败的节点,Hadoop会自动寻找副本所在的节点进行访问

2、请用描述HDFS读取文件的具体步骤。

答:

  1. 客户端用分布式文件系统的open()函数打开文件。
  2. 分布式文件系统远程调用RPC,获取元数据节点的文件数据块信息;对于返回的每一个数据块信息,元数据节点只返回保存数据块的数据节点的地址;接着分布式文件系统返回FSDataInputStream对象给客户端,其中封装了读取数据的方法。
  3. 客户端调用FSDataInputStream中的read()函数开始读取数据;FSDataInputStream封装了DFSInputStream对象中用于管理元数据节点和数据节点的I/O操作的方法,客户端调用read()函数后,使用DFSInputStream对象中的I/O操作;DFSInputStream连接一直保持,直到当前读取的文件中第一个数据块的最近数据节点中的数据读到客户端后,DFSInputStream会关闭和此数据节点的连接;然后连接此文件的下一个数据块的最近数据节点。若在读取数据的过程中,客户端与数据节点的通信出现错误,则尝试连接包含此数据块的下一个数据节点;失败的数据节点将被记录,以后不再连接。
  4. 当客户端读取完数据时,调用DFSInputStream的close()函数,结束读取过程。

3、请描述HDFS写文件的具体过程。

答:

  1. 客户端调用create()函数来创建文件。
  2. 分布式文件系统远程调用RPC,在元数据节点的命名空间中创建一个新的文件。元数据节点在确定文件不存在,并且客户端有创建文件的权限后,创建新文件。创建完成后,分布式文件系统返回DFSOutputStream对象给客户端,用于写数据。文件系统返回DFSOutputStream对象给客户端,用于写数据。
  3. 当客户端开始写数据时,调用DFSOutputStream中的方法将数据分成块并写入数据队列;数据队列由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每个数据块均默认复制3份),分配的数据节点放在一个管道(Pipeline)里。其中,Data Streamer是在调用DFSOutputStream对象过程中开启的线程。
  4. Data Streamer将数据块写入管道涉及的第一个数据节点,第一个数据节点将数据块发送给第二个数据节点,第二个数据节点将数据发送给第三个数据节点。
  5. DFSOutputStream将发送出去的数据块信息保存在ack queue队列里。如果数据块传输成功的话,就会删除ack queue队列里对应的数据块;如果不成功的话就将ack queue里的数据块取出来放到数据队列的末尾,等待重新传输。
  6. 当客户端结束写入数据过程,则调用DFSOutputStream中的close()函数,此时客户端不再向管道中写入数据,并关闭管道。在等到所有的写入数据的成功应答后,通知元数据节点写入完毕。

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

高校知识店铺合集汇总

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

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

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

打赏作者

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

抵扣说明:

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

余额充值