《分布式数据库原理与应用》——作业二

作业二及答案

快捷查找:Ctrl+F   在搜索框中输入题目

一. 填空题(共3题,37.5分)

1. (填空题)HDFS主要由3个组件构成,分别是____、____和____。

正确答案:(1) NameNode(2) SecondaryNameNode(3) DataNode

2. (填空题)HBase基于Hadoop的____完成分布式存储,以及MapReduce完成分布式并行计算。

正确答案:(1) HDFS

3. (填空题)HBase是____/____结构数据库

正确答案:(1) 主从;主/从

二. 简答题(共5题,62.5分)

4. (简答题)简述HDFS分块机制的好处

正确答案:

(1)文件可以任意大,不会受到单个节点的磁盘容量的限制,理论上讲,HDFS的存储容量是无限的。
(2)简化文件子系统的设计。将系统的处理对象设置为块,可以简化存储管理,因为块大小固定,所以每个文件分成多少个块以及每个DateNode能存多少个块都很容易计算。同时系统中NameNode只负责管理文件的元数据,DataNode只负责数据存储,分工明确,提高系统的效率。
(3)有利于提高系统的可用性,在HDFS通过数据备份来提供数据的容错能力和高可用性。

5. (简答题)简述HBase组件中HMaster的主要功能。

正确答案:

HMaster是HBase集群中的主服务器,负责监控集群中的所有RegionServer,并且是所有元数据更改的接口。主要负责表和region的管理工作:
(1)首先HMaster与客户端进行交互,管理用户对表的增、删、改、查操作,
(2)然后HMaster管理RegionServer的负载均衡,调整整个集群中region的分布,
(3)另外,Region的分配和移除也需要向HMaster汇报,及时获取集群中元数据的信息,保证用户访问数据的正确性。
(4)处理RegionServer的故障转移。

6. (简答题)【程序题】完成以下要求:
(1)利用shell命令新建一张名为table的表,列族为cf。
(2)向table表中增加列族sf
(3)将下面两条数据插入到table表中,以姓名为行键,年龄为列
Name:xiaoming  age:18
Name:lili age:20
(4)修改table表中xiaoming的年龄为15
(5)删除table表中lili的数据
(6)删除table表

正确答案:

(1)create ‘table’,‘cf’

(2)alter ‘table’,NAME => ‘sf’

(3)put ‘table’,’xiaoming’,’cf:age’,’18’
put ’table’,’lili’,’cf:age’,’20’

(4)put ‘table’,’xiaoming’,’cf:age’,’15’

(5)deleteall ‘table’,’lili’

(6)disable ‘table’
drop ‘table’

7. (简答题)【程序题】已知Hbase有数据work表,回答以下问题或操作。

(1)使用RowFilter(针对行键进行过滤),显示行键值中包含2的键值对的代码如下,请全代码。scan 'work',{FILTER=>"RowFilter( ________ )"}

 (2)使用PrefixFilter(行键前缀过滤器),扫描前缀为2021的行键。

 (3)使用FamilyFilter(针对列族进行比较和过滤)。显示列族前缀为work开头的键值对。

 (4)使用QualifierFilter(列标识过滤器),显示列名为age的记录。

 (5)使用ValueFilter (值过滤器),查询值等于25的所有键值对。

 (6)使用SingleColumnValueFilter (在指定的列族和列中进行值过滤器),查询workInfo列族age列中值等于35的所有键值对。

 (7)使用ColumnPaginationFilter (基于列的进行分页过滤器),显示每行第2列之后的3个键值对。

正确答案:

(1)=,'substring:2'

(2)scan 'worker',FILTER=>"PrefixFilter('2021')"

(3)scan 'worker',FILTER=>"FamilyFilter(=,'substring:work’)"

或scan 'worker',FILTER=>"FamilyFilter(=,‘binary:work’)"

(4)scan 'worker',FILTER=>"QualifierFilter(=,'substring:age)"

或scan 'worker',FILTER=>"QualifierFilter(=,'binary:age)"

(5)scan 'worker',FILTER=>"ValueFilter(=,'binary:25') "

或scan 'worker',FILTER=>"ValueFilter(=,'substring:25')"

(6)scan 'worker',{COLUMN=>'workInfo:age',FILTER=>"SingleColumnValueFilter('stuInfo','age',=,'binary:35')"}

Scan 'worker',{COLUMN=>'workInfo:age',FILTER=>"SingleColumnValueFilter('stuInfo','age',=,'substring:35')"}

 (7)scan 'worker',FILTER=>"ColumnPaginationFilter(3,2)"

8. (简答题)HBase组件中zookeeper的主要功能。

正确答案:

ZooKeeper是串联HBase集群和client的关键。ZooKeeper在HBase中的负责协调的任务有:
(1)Master选举。
HBase集群中有多个HMaster并存,通过竞争选举机制保证同一时刻只有一个HMaster处于活跃状态,一旦这个HMaster无法使用,则从备用节点中选举一个顶上,保证集群的高可靠性。
(2)系统容错。
在HBase启动时,每个RegioServer在加入集群时都需要到ZooKeeper中进行注册,创建一个状态节点,ZooKeeper会实时监控每个RegionServer的状态,同时HMaster会对这些注册的RegionServer监听。
(3)Region元数据管理。
在HBase集群中,region元数据被存储在.META.表中。每次客户端发起新的请求时,需要查询.META.表来获取region的位置。而.META.表是存在ZooKeeper中的。
(4)Region状态管理。
HBase集群中region会经常发生变更,变更的原因可能是系统故障,或者是配置修改,还有region的分裂和合并。只要region发生变化,就需要集群的所有节点知晓,否则就会出现某些事务性的异常。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值