没有合适的资源?快使用搜索试试~ 我知道了~
大数据技术原理与应用-实验3熟悉常用的HBase操作(林子雨)
需积分: 5 0 下载量 59 浏览量
2024-04-09
10:28:30
上传
评论
收藏 2.42MB DOCX 举报
温馨提示
试读
24页
大数据分析
资源推荐
资源详情
资源评论
4.8 习题
1. 试述在 Hadoop 体系架构中 HBase 与其他组成部分的相互关系。
HBase 利用 Hadoop MapReduce 来处理 HBase 中的海量数据,实现高性能计算;利用
ZooKeeper 作为协同服务,实现稳定服务和失败恢复;使用 HDFS 作为高可靠的底层在储,利
用廉价集群提供海量数据存储能力。当然,HBas 也可以直接使用本地文件系统而不用 HDFS
作为底层数据存储方式。不过,为了提高数据可靠性和系统的健壮性,发挥 HBase 处理大
数据量等功能,一般都使用 HDFS 作为 HBase 的底层数据存储系统。此外,为了方便在
HBase 上进行数据处理,Sqoop 为 HBase 提供了高效、便捷的关系数据库管理系统
(Relational DataBase Management System,RDBMS)数据导人功能,Pig 和 Hive 为 HBase
提供了高层语言支持。
2. 请阐述 HBase 和 BigTable 的底层技术的对应关系。
3. 请阐述 HBase 和传统关系数据库的区别。
①数据类型。关系数据库采用关系模型,具有丰富的数据类型和存储方式。HBase 则采用了
更加简单的数据模型,它把数据存储为未经解释的字符串,用户可以把不同格式的结构化数
据和非结构化数据都序列化成字符串保存到 HBase 中,用户需要自己编写程序把字符串解
析成不同的数据类型。
②数据操作。关系数据库中提供了丰富的操作,如插人、删除、更新、查询等,其中会涉及
复杂的多表连接,通常借助于多个表之间的主外键关联来实现。HBase 提供的操作则不存在
复杂的表与表之间的关系,只有简单的插人、查询、删除、清空等。因为 HBase 在设计上
避免了复杂的表与表之间的关系,通常只采用单表的主键查询,所以它无法实现像关系数据
库中那样的表与表之间的连接操作。
③存储模式。关系数据库是基于行模式存储的,元组或行会被连续地存储在磁盘页中。在读
取数据时,需要顺序扫描每个元组,然后从中筛选出查询所需要的属性。如果每个元组只有
少量属性的值对于查询是有用的,那么基于行模式存储就会浪费许多磁盘空间和内存带宽。
HBase 是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的,它的优点
是:可以降低 I/O 开销,支持大量并发用户查询( 因为仅需要处理可以回答这些查询的列,
而不需要处理与查询无关的大量数据行 ); 同一个列族中的数据会被一起压缩(由于同一列
族内的数据相似度较高因此可以获得较高的数据压缩比)。
④ 数据索引。关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能
与关系数据库不同的是,HBase 只有一个索引键,通过巧妙的设计,HBase 中的所有访问方
法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来。由于 HBase
位于 Hadoop 框架之上,因此可以使用 Hadoop MapReduce 来快速、高效地生成索引表。
⑤数据维护。在关系数据库中,更新操作会用最新的当前值去替换记录中原来的“旧”值,
旧值被覆盖后就不会存在。而在 HBase 中执行更新操作时,并不会删除数据的旧的版本,
而是生成一个新的版本,旧的版本仍然保留。
⑥可伸缩性。关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,HBase 和
BigTable 这些分布式数据库就是为了实现灵活的横向扩展而开发的,因此能够轻易地通过
在集群中增加或者减少硬件数量来实现性能的伸缩。
但是,相对关系数据库,HBase 也有自身的局限性,如 HBase 不支持事务,因此无法实现
跨行的原子性。
4. HBase 支持哪些类型的访问接口。
类型
特点
使用场合
Native Java API
常规和高效的访问方式
适合 Hadoop MapReduce 作
业并行批处理 HBase 表数据
HBase Shell
HBase 的命令行工具,最简
单的接口
适合 HBase 管理
Thrift Gateway
利用 Thrift 序列化技术,
支持 C++PHP、Python 等多
种语言
适合其他异构系统在线访问
HBase 表数据
REST Gateway
解除语言限制
支持 REST 风格的 HTTPAPI
访问 HBase
Pig
使用 Pig Latin 流式编程语
言来处理 HBase 中的数据
适合做数据统计
Hive
简单
当需要以类似 SOL 的方式来
访问 HBase 的时候
5. 请以实例说明 HBase 数据模型。
HBase 是一个分布式、面向列的 NoSQL 数据库,通常用于存储大规模的结构化数据。它的数
据模型基于一个由行键、列族、列限定符和时间戳组成的表格结构。以下是一个简单的示例
来说明 HBase 数据模型:
假设有一个在线商店,需要存储商品信息。可以使用 HBase 来建立一个表格,每一行代表一
个商品,每一列存储一个特定的商品属性。
考虑以下示例表格结构:
- **表名**: products
- **行键**: 商品 ID
- **列族**: info
- **列限定符**: 商品属性
以一个具体的商品为例,假设我们有一个 ID 为 001 的商品,其具有以下属性:
1. 商品名称:手机
2. 价格:2000 元
3. 库存数量:100
4. 生产商:ABC 公司
可以将该商品存储在 HBase 中,具体的数据结构如下:
- **行键**: 001
- **列族**: info
- **列限定符**:
- **商品名称**: 手机
- **价格**: 2000 元
- **库存数量**: 100
- **生产商**: ABC 公司
这样就可以通过行键快速检索到特定的商品信息。如果想要获取商品 ID 为 001 的商品的价
格,只需要指定行键和列族信息即可。
6. 分别解释 HBase 中行键、列键和时间戳的概念。
行键是唯一的,在一个表里只出现一次,否则就是在更新同一行,行键可以是任意的字节数
组。
列族需要在创建表的时候就定义好,数量也不宜过多。列族名必须由可打印字符组成,创建
表的时候不需要定义好列。
时间戳,默认由系统指定,用户也可以显示设置。使用不同的时间戳来区分不同的版本。
7. 请列举实例来阐述 HBase 的概念视图和物理视图的区别。
HBase数据概念视图:
HBase数据物理视图
在HBase的概念视图中,一个表可以视为一个稀疏、多维的映射关系。
在物理视图中,一个表会按照属于同一列族的数据保存在一起。
8. 试述 HBase 各功能组件及其作用。
(1)库函数:链接到每个客户端;
(2)一个 Master 主服务器:主服务器 Master 主要负责表和 Region 的管理工作;
(3)许多个 Region 服务器:Region 服务器是 HBase 中最核心的模块,负责维护分配给自
己的 Region,并响应用户的读写请求。
9. 请阐述 HBase 的数据分区机制。
HBase 采用分区存储,一个大的表会被分拆许多个 Region,这些 Region 会被分发到不同的
服务器上实现分布式存储
10. HBase 中的分区是如何定位的。
通过构建的映射表的每个条目包含两项内容,一个是 Regionde 标识符,另一个是 Region
服务器标识,这个条目就标识 Region 和 Region 服务器之间的对应关系,从而就可以知道某
个 Region 被保存在哪个 Region 服务器中。
11. 试述 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 文件大小超过一定阈值时,就会触发文件分裂操作。
剩余23页未读,继续阅读
资源评论
深蓝按键
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功