大数据技术原理与应用第四章课后作业
黎狸
1.试述在Hadoop体系架构中HBase与其他组成部分的相互关系。
HBase利用Hadoop MapReduce来处理HBase中的海量数据,实现高性能计算;利用Zookeeper作为协同服务,实现稳定服务和失败恢复;使用HDFS作为高可靠的底层存储,利用廉价集提供海量数据存储能力; Sqoop为HBase的底层数据导入功能,Pig和Hive为HBase提供了高层语言支持,HBase是BigTable的开源实现。
2.请阐述HBase和BigTable的底层技术的对应关系。
项目 | BigTable | HBase |
文件存储系统 | GFS | HDFS |
海量数据处理 | MapReduce | Hadoop MapReduce |
协同服务管理 | Chubby | Zookeeper |
3.请阐述HBase和传统关系数据库的区别。
主要体现在6个方面。
主要方面 | 关系数据库 | HBase |
数据类型 | 关系模型 丰富的数据类型和存储方式 | 简单的数据模型 数据存储为未经解释的字符串 |
数据操作 | 丰富 插入 删除 更行 查询等 多表连接 | 不存在复杂的表与表之间的关系 仅插入 查询 删除 清空等 |
存储模式 | 基于行模式存储 | 基于列存储 |
数据索引 | 针对不同列构建复杂的多个索引,提高数据访问性能 | 索引是行键 |
数据维护 | 更行操作用最新的当前值替换记录中原来的旧值 | 更新操作不删除数据旧的版本 |
可伸缩性 | 难实现横向扩展,纵向扩展的空间有限 | 水平扩展灵活 轻易的通过在集中增加或者减少硬件数量来实现性能的伸缩 |
4.HBase有哪些类型的访问接口?
HBase提供了Native Java API , HBase Shell , Thrift Gateway , REST GateWay , Pig , Hive 等访问接口。
5.请以实例说明HBase数据模型。
Info | |||
name | major | email | |
2017151826 | Lili | Math | Lili@qq |
行键 2017452636 | Lilu | Math | Lilu@qq |
2485623039 | liulie | Math | liulie@qq liulie@163 |
单元格
6.分别解释HBase中行键、列键和时间戳的概念。
1行键标识行。行键可以是任意字符串,行键保存为字节数组。
2列族。HBase的基本的访问控制单元,需在表创建时就定义好。
3时间戳。每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。
7.请举个实例来阐述HBase的概念视图和物理视图的不同。
数据概念试图
行键 | 时间戳 | 列族contents | 列族anchor |
“comn.ww” | t1 | Anchornsi=”CNN” | |
“comn.ww” | t3 | Contests.html=”<html>…” | |
t4 | Contests.html=”<html>…” | ||
数据物理视图
行键 | 时间戳 | 列族anchor |
“comn.ww” | t1 | Anchornsi=”CNN” |
行键 | 时间戳 | 列族contents |
“comn.ww” | t3 | Contests.html=”<html>…” |
t4 | Contests.html=”<html>…” | |
8.试述HBase各功能组件及其作用。
1库函数:链接到每个客户端;
2一个Master主服务器:主服务器Master主要负责表和Region的管理工作;
3③许多个Region服务器:Region服务器是HBase中最核心的模块,负责存储和维护分配给自己的Region,并响应用户的读写请求
9.请阐述HBase的数据分区机制。
每个行区间构成一个分区,被称为“Region”,分发到不同的Region服务器上。
10.HBase中的分区是如何定位的?
通过构建的映射表的每个条目包含两项内容,一个是Regionde 标识符,另一个是Region服务器标识,这个条目就标识Region和Region服务器之间的对应关系,从而就可以知道某个Region被保存在哪个Region服务器中。
11.试述HBase的三层结构中各层次的名称和作用。
层次 | 名称 | 作用 |
第一层 | Zookeeper文件 | 记录了-ROOT-表的位置信息 |
第二层 | -ROOT-表 | 记录了.META.表的Region位置信息-ROOT-表只能有一个Region。通过-ROOT-表,就可以访问.META.表中的数据 |
第三层 | .META.表 | 记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有请阐述在HBase三层结构下,客户端是如何访问到数据的。 |
12.请阐述HBase的三层结构下,客户端是如何访问到数据的。
首先访问Zookeeper,获取-ROOT表的位置信息,然后访问-Root-表,获得.MATA.表的信息,接着访问.MATA.表,到所需的Region具体位于哪个Region服务器,最后才会到该Region服务器读取数据。
13.试述HBase系统基本架构以及每个组成部分的作用。
(1)客户端
客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程
(2)Zookeeper服务器
Zookeeper可以帮助选举出一个Master作为集的总管,并保证在任何时刻总有唯一一个Master在运行,这就避免了Master的“单点失效”问题
(3)Master
主服务器Master主要负责表和Region的管理工作:管理用户对表的增加、删除、修改、查询等操作;实现不同Region服务器之间的负载均衡;在Region分裂或合并后,负责重新调整Region的分布;对发生故障失效的Region服务器上的Region进行迁移
(4)Region服务器
Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求
14.请阐述Region服务器向HDFS文件系统中读写数据的基本原理。
Region服务器内部管理一系列Region对象和一个HLog文件,其中,HLog是磁盘上面的记录文件,它记录着所有的更新操作。每个Region对象又是由多个Store组成的,每个Store对象了表中的一个列族的存储。每个Store又包含了MemStore和若干个StoreFile,其中,MemStore是在内存中的缓存。
15.试述HStore的工作原理。
每个Store对应了表中的一个列族的存储。每个Store包括一个MenStore缓存和若干个StoreFile文件。MenStore是排序的内存缓冲区,当用户写入数据时,系统首先把数据放入MenStore缓存,当MemStore缓存满时,就会刷新到磁盘中的一个StoreFile文件中,当单个StoreFile文件大小超过一定阈值时,就会触发文件分裂操作。
16.试述HLog的工作原理。
HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(Write Ahead Log),用户更新数据必须首先写入日志后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷写到磁盘。
17.在HBase中,每个Region服务器维护一个HLog,而不是为每个Region都单独维护一个HLog。请说明这种做法的优点和缺点。
优点: 多个Region对象的更新操作所发生的日志修改,只需要不断把日志记录追加到单个日志文件中,不需要同时打开、写入到多个日志文件中。
缺点:如果一个Region服务器发生故障,为了恢复其上次的Region对象,需要将Region服
务器上的对象,需要将Region服务器上的HLog按照其所属的Region对象进行拆分,然后分发到其他Region服务器上执行恢复操作。
18.当一台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文件中,完成数据恢复。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论