HBase 架构:你需要知道的一切 [2022]
已发表: 2021-01-06结构化和非结构化数据都呈指数级增长, Apache Hadoop已证明其在处理如此庞大的数据方面的卓越表现。 因此,Apache Hadoop 在大数据领域获得了很大的关注。 但是,Hadoop 的 HDFS 架构存在一定的局限性。
HDFS 输出高延迟操作,无法同时处理大量的读写请求。 另一个限制是 HDFS 是一次写入多次读取的架构,这意味着它必须完全重写文件才能更改数据集。 HDFS 架构的这些限制提出了对HBase 架构的需求。
目录
什么是 HBase?
HBase 是一种面向列的数据存储架构,它建立在 HDFS 之上以克服其局限性。 它利用 HDFS 的基本功能并在此基础上通过实时处理大量读写请求来提供可扩展性。 尽管HBase 架构是一个 NoSQL 数据库,但它通过将数据均匀分布在集群中来简化维护数据的过程。 这使得访问和更改 HBase 数据模型中的数据变得快速。 了解有关 HBase 的更多信息。
HBase 数据模型的组成部分是什么?
由于 HBase 数据模型是 NoSQL 数据库,因此开发人员可以在需要时轻松读取和写入数据,使其比 HDFS 架构更快。 它由以下组件组成:
1. HBase Tables : HBase架构是面向列的; 因此,数据存储在基于表格格式的表格中。
2. RowKey : RowKey 分配给每组记录的数据。 这使得在 HBase 表中搜索特定数据变得容易。

3. 列:列是数据集的不同属性。 每个 RowKey 可以有无限的列。
4. 列族:列族是几个列的组合。 读取列族的单个请求可以访问该族中的所有列,从而更快、更轻松地读取数据。
5. 列限定符:列限定符类似于普通表中的列标题或属性名称。
6. Cell :它是一个行列元组,使用 RowKey 和列限定符标识。
7. 时间戳:每当数据存储在 HBase 数据模型中时,都会使用时间戳进行存储。
阅读:Hadoop 生态系统的组成部分
HBase 架构的组件有哪些?
HBase 架构包括三个主要组件, HMaster、Region Server 和 ZooKeeper。
1. HMaster
HMaster 的运作方式与其名称相似。 将区域分配给 Region Server(从属)的是 master。 HBase 架构使用自动分片过程来维护数据。 在这个过程中,每当一个 HBase 表变得太长时,它都会由系统在 HMaster 的帮助下分发。 HMaster 的一些典型职责包括:
- 控制故障转移
- 管理 Region Server 和 Hadoop 集群
- 处理 DDL 操作,例如创建和删除表
- 管理元数据操作中的更改
- 管理区域并将区域分配给区域服务器
- 接受请求并将其发送到相关的 Region Server
2.区域服务器
区域服务器是处理所有用户请求的终端节点。 几个区域组合在一个区域服务器中。 这些区域包含指定键之间的所有行。 处理用户请求是一项复杂的执行任务,因此区域服务器进一步分为四个不同的组件,以无缝管理请求。

- 预写日志(WAL) :WAL 附加到每个区域服务器并存储尚未提交到驱动器的临时数据。
- Block Cache :是读请求缓存; 所有最近读取的数据都存储在块缓存中。 不经常使用的数据在存满时会自动从库存中删除。
- MemStore :它是一个写缓存,负责存储尚未写入磁盘的数据。
- HFile :HFile 存储提交后的所有实际数据。
3.动物园管理员
ZooKeeper 充当跨HBase 架构通信的桥梁。 它负责跟踪所有的 Region Server 和其中的区域。 监控哪些 Region Server 和 HMaster 处于活动状态,哪些发生故障也是 ZooKeeper 职责的一部分。 当它发现某个 Server Region 发生故障时,它会触发 HMaster 采取必要的行动。 另一方面,如果 HMaster 本身发生故障,它会触发在警报后变为活动的非活动 HMaster。 每个用户甚至 HMaster 都需要通过 ZooKeeper 访问 Region Servers 和其中的数据。 ZooKeeper 存储一个.Meta文件,其中包含所有区域服务器的列表。 ZooKeeper 的职责包括:
- 跨 Hadoop 集群建立通信
- 维护配置信息
- 跟踪 Region Server 和 HMaster 故障
- 维护 Region Server 信息
HBase 架构中的请求是如何处理的?
现在我们知道了HBase 架构的主要组件及其功能,让我们深入研究整个架构中如何处理请求。
1.开始搜索HBase架构
初始化搜索的步骤是:
- 用户从 ZooKeeper 中检索 Meta 表,然后请求相关 Region Server 的位置。
- 然后用户将在 RowKey 的帮助下从 Region Server 请求确切的数据。
2. HBase架构中的写机制
在HBase 架构中编写的步骤是:
- 客户端首先必须找到区域服务器,然后找到数据的位置来更改它。 (此步骤仅用于转换数据,不用于写入新信息)
- 实际的写入请求从客户端写入数据的 WAL 开始。
- WAL 将数据传输到 MemStore 并向用户发送确认。
- 当 MemStore 填满数据时,它会将数据提交到 HFile,并存储在那里。
3. HBase架构中的读取机制
要读取任何数据,用户首先必须访问相关的区域服务器。 知道 Region Server 后,其他过程包括:

- 第一次扫描是在读取缓存中进行的,即块缓存。
- 下一个扫描位置是 MemStore,也就是写缓存。
- 如果在块缓存或 MemStore 中没有找到数据,扫描器将从 HFile 中检索数据。
数据恢复在 HBase 架构中如何操作?
Hbase架构通过 compaction 和 region split 来打断数据,以减少集群中的数据负载。 但是,如果发生崩溃并需要恢复,则可以这样做:
- 当服务器发生故障时,ZooKeeper 会触发 HMaster。
- HMaster 将崩溃的区域和 WAL 分发到活动的区域服务器。
- 这些 Region Server 重新执行 WAL 并构建 MemStore。
- 当所有 Region Servers 重新执行 WAL 时,所有数据连同列族都被恢复。
结帐: Hadoop 生态系统和组件
底线
数据已成为各行各业的新石油。 因此,在 Hadoop 中有多种职业机会。 您可以在upGrad了解有关 Hadoop 和大数据的所有信息。
如果您有兴趣了解有关 Hbase、大数据的更多信息,请查看我们的大数据软件开发专业化 PG 文凭课程,该课程专为在职专业人士设计,提供 7 个以上案例研究和项目,涵盖 14 种编程语言和工具,实用的手- 研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。
从世界顶级大学在线学习软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。