HNUST 大数据技术与应用期末复习
HNUST 大数据技术与应用期末复习

HNUST 大数据技术与应用期末复习

第4章 分布式数据库HBase作业

单选题

  1. (单选题, 2分)下列关于BigTable的描述,哪个是错误的?

A 爬虫持续不断地抓取新页面,这些页面每隔一段时间地存储到BigTable里

B BigTable是一个分布式存储系统

C BigTable起初用于解决典型的互联网搜索问题

D 网络搜索应用查询建立好的索引,从BigTable得到网页

正确答案: A

  1. (单选题, 2分)下列选项中,关于HBase和BigTable的底层技术对应关系,哪个是错误的?

A GFS与HDFS相对应

B GFS与Zookeeper相对应

C MapReduce与Hadoop MapReduce相对应

D Chubby与Zookeeper相对应

正确答案: B

  1. (单选题, 2分)在HBase中,关于数据操作的描述,下列哪一项是错误的?

A HBase采用了更加简单的数据模型,它把数据存储为未经解释的字符串

B HBase操作不存在复杂的表与表之间的关系

C HBase不支持修改操作

D HBase在设计上就避免了复杂的表和表之间的关系

正确答案: C

  1. (单选题, 2分)在HBase访问接口中,Pig主要用在哪个场合?

A 适合Hadoop MapReduce作业并行批处理HBase表数据

B 适合HBase管理使用

C 适合其他异构系统在线访问HBase表数据

D 适合做数据统计

正确答案: D

  1. (单选题, 2分)HBase中需要根据某些因素来确定一个单元格,这些因素可以视为一个四维坐标,下面哪个不属于四维坐标

A 行键

B 关键字

C 列族

D 时间戳

正确答案: B

  1. (单选题, 2分)关于HBase的三层结构中各层次的名称和作用的说法,哪个是错误的?

A Zookeeper文件记录了用户数据表的Region位置信息

B -ROOT-表记录了

C

D Zookeeper文件记录了-ROOT-表的位置信息

正确答案: A

  1. (单选题, 2分)下面关于主服务器Master主要负责表和Region的管理工作的描述,哪个是错误的?

A 在Region分裂或合并后,负责重新调整Region的分布

B 对发生故障失效的Region服务器上的Region进行迁移

C 管理用户对表的增加、删除、修改、查询等操作

D 不支持不同Region服务器之间的负载均衡

正确答案: D

  1. (单选题, 2分)HBase只有一个针对行健的索引,如果要访问HBase表中的行,下面哪种方式是不可行的?

A 通过单个行健访问

B 通过时间戳访问

C 通过一个行健的区间来访问

D 全表扫描

正确答案: B

  1. (单选题, 2分)下面关于Region的说法,哪个是错误的?

A 同一个Region不会被分拆到多个Region服务器

B 为了加快访问速度,

C 一个-ROOT-表可以有多个Region

D 为了加速寻址,客户端会缓存位置信息,同时,需要解决缓存失效问题

正确答案: C

多选题

  1. (多选题, 2分)关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce,为什么需要HBase?

A Hadoop可以很好地解决大规模数据的离线批量处理问题,但是,受限于Hadoop MapReduce编程框架的高延迟数据处理机制,使得Hadoop无法满足大规模数据实时处理应用的需求上

B HDFS面向批量访问模式,不是随机访问模式

C 传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题

D 传统关系数据库在数据结构变化时一般需要停机维护;空列浪费存储空间

正确答案: ABCD

  1. (多选题, 2分)HBase与传统的关系数据库的区别主要体现在以下哪几个方面?

A 数据类型

B 数据操作

C 存储模式

D 数据维护

正确答案: ABCD

  1. (多选题, 2分)HBase访问接口类型包括哪些?

A Native Java API

B HBase Shell

C Thrift Gateway

D REST Gateway

正确答案: ABCD

  1. (多选题, 2分)下列关于数据模型的描述,哪些是正确的?

A HBase采用表来组织数据,表由行和列组成,列划分为若干个列族

B 每个HBase表都由若干行组成,每个行由行键(row key)来标识

C 列族里的数据通过列限定符(或列)来定位

D 每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引

正确答案: ABCD

  1. (多选题, 2分)HBase的实现包括哪三个主要的功能组件?

A 库函数:链接到每个客户端

B 一个Master主服务器

C 许多个Region服务器

D 廉价的计算机集群

正确答案: ABC

  1. (多选题, 2分)HBase的三层结构中,三层指的是哪三层?

A Zookeeper文件

B -ROOT-表

C META表

D 数据类型

正确答案: ABC

  1. (多选题, 2分)以下哪些软件可以对HBase进行性能监视?

A  Master-status(自带)

B Ganglia

C OpenTSDB

D Ambari

正确答案: ABCD

  1. (多选题, 2分)Zookeeper是一个很好的集群管理工具,被大量用于分布式计算,它主要提供什么服务?

A 配置维护

B 域名服务

C 分布式同步

D 负载均衡服务

正确答案: ABC

  1. (多选题, 2分)下列关于Region服务器工作原理的描述,哪些是正确的?

A 每个Region服务器都有一个自己的HLog 文件

B 每次刷写都生成一个新的StoreFile,数量太多,影响查找速度

C 合并操作比较耗费资源,只有数量达到一个阈值才启动合并

D Store是Region服务器的核心

正确答案: ABCD

  1. (多选题, 2分)下列关于HLog工作原理的描述,哪些是正确的?

A 分布式环境必须要考虑系统出错。HBase采用HLog保证

B HBase系统为每个Region服务器配置了一个HLog文件

C Zookeeper会实时监测每个Region服务器的状态

D Master首先会处理该故障Region服务器上面遗留的HLog文件

正确答案: ABCD

简答题

  1. (简答题, 7分)试述在Hadoop体系架构中HBase与其他组成部分的相互关系。

正确答案:HBase利用Hadoop MapReduce来处理HBase中的海量数据,实现高性能计算;利用Zookeeper作为协同服务,实现稳定服务和失败恢复;使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力; Sqoop为HBase的底层数据导入功能,Pig和Hive为HBase提供了高层语言支持,HBase是BigTable的开源实现。

  1. (简答题, 6分)请阐述HBase和传统关系数据库的区别。

正确答案:

项目

传统关系数据库

HBase

数据类型

关系模型

数据模型

数据操作

插入、删除、更新、查询、多表连接

插入、查询、删除、清空,无法实现表与表之间关联

存储模式

基于行模式存储,元组或行会被连续地存储在磁盘也中

基于列存储,每个列族都由几个文件保存,不同列族的文件是分离的

数据索引

针对不同列构建复杂的多个索引

只有一个行键索引

数据维护

用最新的当前值去替换记录中原来的旧值

更新操作不会删除数据旧的版本,而是生成一个新的版本

可伸缩性

很难实现横向扩展,纵向扩展的空间也比较有限

轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩

  1. (简答题, 7分)请举个实例来阐述HBase的概念视图和物理视图的不同。

正确答案:HBase数据概念视图:

行键

时间戳

列族contents

列族anchor

“com.cnn.www”

T5

 

Anchor:cnnsi.com=”CNN”

T4

 

Anchor:my.look.ca=”CNN”

 

“com.cnn.www”

T3

Content:html=”<html>…”

 

T2

Content:html=”<html>…”

 

 

T1

Content:html=”<html>…”

 

 

HBase数据物理视图:l 列族anchor

行键

时间戳

列族anchor

“com.cnn.www”

T5

Anchor:cnnsi.com=”CNN”

T4

Anchor:my.look.ca=”CNN”

 

l 列族contents

行键

时间戳

列族contents

“com.cnn.www”

T3

Content:html=”<html>…”

T2

Content:html=”<html>…”

 

T1

Content:html=”<html>…”

 

在HBase的概念视图中,一个表可以视为一个稀疏、多维的映射关系。在物理视图中,一个表会按照属于同一列族的数据保存在一起。

  1. (简答题, 6分)HBase中的分区是如何定位的?

正确答案:通过构建的映射表的每个条目包含两项内容,一个是Regionde 标识符,另一个是Region服务器标识,这个条目就标识Region和Region服务器之间的对应关系,从而就可以知道某个Region被保存在哪个Region服务器中。

  1. (简答题, 6分)请阐述HBase的三层结构下,客户端是如何访问到数据的。

正确答案:首先访问Zookeeper,获取-ROOT-表的位置信息,然后访问-Root-表,获得.META.表的信息,接着访问.META.表,找到所需的Region具体位于哪个Region服务器,最后才会到该Region服务器中读取数据。

  1. (简答题, 6分)请阐述Region服务器向HDFS文件系统中读写数据的基本原理。

正确答案:Region服务器内部管理一系列Region对象和一个HLog文件,其中,HLog是磁盘上面的记录文件,它记录着所有的更新操作。每个Region对象又是由多个Store组成的,每个Store对应了表中的一个列族的存储。每个Store又包含了MemStore和若干个StoreFile,其中,MemStore是在内存中的缓存,保存最近更新的数据。StoreFile是磁盘中的文件,均为B树结构,方便快速读取,其底层实现方式是HDFS文件系统的HFile,HFile的数据块通常采用压缩存储。(1)用户读写数据的过程:当用户写入数据时,会被分配到相应的Region服务器去执行操作。用户数据首先写入到MemStore和HLog中,当操作写入HLog后,commit()调用将其返回给客户端。当用户读取数据时,Region服务器首先访问MemStore缓存,如果数据不在缓存中,才会到磁盘StoreFile中寻找。(2)缓存的刷新:系统周期性地调用Region.flushcache()将MEMStore的内容写入到磁盘文件StoreFile文件中,清空缓存,并且在HLog文件中写入一个标记,表示缓存中的内容已经被写入StoreFile文件中。每次缓存刷新操作都会在磁盘上生成一个新的StoreFile文件,所以每个Store包含多个StoreFile文件。(3)StoreFile合并:    系统一般调用Store.compact()将多个StoreFile文件合并为一个大文件。由于合并操作耗费资源,通常只会在StoreFile文件的数量达到一个阈值时才触发合并操作。

  1. (简答题, 6分)当一台Region服务器意外终止时,Master如何发现这种意外终止情况?为了恢复这台发生意外的Region服务器上的Region,Master应该做出哪些处理(包括如何使用HLog进行恢复)?

正确答案:Zookeeper会实时监测每个Region服务器的状态,当某个Region服务器发生故障时,Zookeeper会通知Master。Master首先会处理该故障Region服务器上面遗留的HLog文件,这个遗留的HLog文件中包含了来自多个Region对象的日志记录。系统会根据每条日志记录所属的Region对象对HLog数据进行拆分,分别放到相应Region对象的目录下,然后,再将失效的Region重新分配到可用的Region服务器中,并把与该Region对象相关的HLog日志记录也发送给相应的Region服务器。    Region服务器领取到分配给自己的Region对象以及与之相关的HLog日志记录以后,会重新做一遍日志记录中的各种操作,把日志记录中的数据写入到MemStore缓存中,然后,刷新到磁盘的StoreFile文件中,完成数据恢复。

  1. (简答题, 6分)试述HLog的工作原理。

正确答案:HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(Write Ahead Log),用户更新数据必须首先写入日志后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷写到磁盘。

  1. (简答题, 6分)试述HStore的工作原理。

正确答案:每个Store对应了表中的一个列族的存储。每个Store包括一个MenStore缓存和若干个StoreFile文件。MenStore是排序的内存缓冲区,当用户写入数据时,系统首先把数据放入MenStore缓存,当MemStore缓存满时,就会刷新到磁盘中的一个StoreFile文件中。随着StoreFile文件数量的不断增加,当达到事先设定的阈值是触发文件合并操作,当单个StoreFile文件大小超过一定阈值时,就会触发文件分裂操作。

  1. (简答题, 6分)在HBase中,每个Region服务器维护一个HLog,而不是为每个Region都单独维护一个HLog。请说明这种做法的优缺点

正确答案:优点: 多个Region对象的更新操作所发生的日志修改,只需要不断把日志记录追加到单个日志文件中,不需要同时打开、写入到多个日志文件中,可以减少磁盘寻址次数,提高对表的写操作性能。缺点:如果一个Region服务器发生故障,为了恢复其上的Region对象,需要将Region服务器上的HLog按照其所属的Region对象进行拆分,然后分发到其他Region服务器上执行恢复操作。

starry0214

订阅评论
提醒
guest

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论