作业三及答案
快捷查找:Ctrl+F 在搜索框中输入题目
一. 简答题(共6题)
1. (简答题)如何增加RegionServer节点?
正确答案:
(1)首先需要修改conf目录下的regionserver文件,然后将此文件复制到集群中所有机器上,这样可以使用启动脚本就能够添加新的服务器。
(2)往HBase集群增加一个RegionServer之前需要往HDFS里增加DataNode。等待DataNode进程启动并加入HDFS集群后,再启动HBase的RegionServer进程。启动新增节点上的RegionServer可以使用命令hbase-damon.sh start,启动成功后可以在Master用户界面看到此节点
2. (简答题)简述Region的拆分过程。
正确答案:
(1)将需要拆分的Region下线,阻止所有对该Region的客户端请求,master会检测到Region的状态为SPLITING;
(2)将一个Region拆分成两个子Region,先在父Region下建立两个引用文件,分别指向Region的首行和末行,这时两个引用文件并不会从父Region中拷贝数据;
(3)之后在HDFS上建立两个子Region的目录,分别拷贝上一步建立的引用文件,每个子Region分别占父Region的一半数据。拷贝完成后删除两个引用文件。
(4)完成子Region创建后,向.META.表发送新产生的region的元数据信息;
(5)Region的拆分信息更新到Hmaster,并且每个Region进入可用状态。
3. (简答题)如何增加Master备份节点?
正确答案:
配置备份master的方式是在HBase的conf下增加文件backup-masters,然后通过hbase-damon.sh start命令启动。Master进程使用ZooKeeper来协商哪一个是当前活动的进程。当集群启动时所有进程都会去竞争进行选举,选出一个作为主Master来提供服务,其他Master会轮询检测当前主Master是否失效,如果失效,会触发新的Master选举。
4. (简答题)简述Region的合并流程。
正确答案:
(1)客户端发起Region合并处理并发送Region合并请求给Master;
(2)Master在RegionServer上把Region移到一起并发起一个Region合并操作的请求;
(3)RegionServer将准备合并的Region下线,然后进行合并;
(4)从.META.表删除被合并的Region元数据,新的合并了的Region的元数据被更新写入.META.表中;
(5)合并的Region被设置为上线状态并接受访问,同时更新Region信息到Master。
5. (简答题)客户端使用get操作读HBase文件,请你解释一下其流程。
正确答案:
客户端先访问zookeeper,从meta表读取Region的信息对应的服务器。客户端向对应Region服务器发送读取数据的请求,Region接收请求后,先从MemStore找数据,如果没有,再到StoreFile上读取,然后将数据返回给客户端。
当用户进行get操作时,会先定位到键值对所在的分区,再并行的查询该分区中所有storefile中是否由指定行键的键值对,由于storefile是排序过的,因此这种并行查询可以很快得到结果。
6. (简答题)HFile合并的Minor合并和Major合并中,用来做部分文件的合并操作是哪一个?请你详细解释一下合并触发条件。
正确答案:
Minor合并。
触发条件:
(1)MemStore的数据刷到HFile时;
(2)定期对Store内的HFile进行合并。
二. 阅读理解(共1题)
7. (阅读理解)1、代码解释:
(1) (简答题) hbase org.apache.hadoop.hbase.mapreduce.Export
正确答案:
hbase表数据导出
(2) (简答题) hbase org.apache.hadoop.hbase.mapreduce.Import
正确答案:
hbase表数据导入