作业二及答案
快捷查找: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发生变化,就需要集群的所有节点知晓,否则就会出现某些事务性的异常。