一文带你读懂 Hbase 的架构组成[通俗易懂]

一文带你读懂 Hbase 的架构组成[通俗易懂]hi,大家好,我是大D。今天咱们继续深挖一下 HBase 的架构组成。 Hbase 作为 NoSQL 数据库的代表,属于三驾马车之一 BigTable 的对应实现,HBase 的出现很好地弥补了大数据

一文带你读懂 Hbase 的架构组成

hi,大家好,我是大D。今天咱们继续深挖一下 HBase 的架构组成。

Hbase 作为 NoSQL 数据库的代表,属于三驾马车之一 BigTable 的对应实现,HBase 的出现很好地弥补了大数据快速查询能力的空缺。在前面咱们也有介绍过 HBase 的数据模型,感兴趣的小伙伴可以翻看下。谈谈你对HBase数据模型的认识?

HBase 的核心架构由五部分组成,分别是 HBase Client、HMaster、Region Server、ZooKeeper 以及 HDFS。它的架构组成如下图所示。

一文带你读懂 Hbase 的架构组成[通俗易懂]

下面我们对 HBase 架构组成的每一部分详细介绍一下。

1.HBase Client

HBase Client 为用户提供了访问 HBase 的接口,可以通过元数据表来定位到目标数据的 RegionServer,另外 HBase Client 还维护了对应的 cache 来加速 Hbase 的访问,比如缓存元数据的信息。

2.HMaster

HMaster 是 HBase 集群的主节点,负责整个集群的管理工作,主要工作职责如下:

  • 分配Region:负责启动的时候分配Region到具体的 RegionServer;
  • 负载均衡:一方面负责将用户的数据均衡地分布在各个 Region Server 上,防止Region Server数据倾斜过载。另一方面负责将用户的请求均衡地分布在各个 Region Server 上,防止Region Server 请求过热;
  • 维护数据:发现失效的 Region,并将失效的 Region 分配到正常的 RegionServer 上,并且在Region Sever 失效的时候,协调对应的HLog进行任务的拆分。

3.Region Server

Region Server 直接对接用户的读写请求,是真正的干活的节点,主要工作职责如下。

  • 管理 HMaster 为其分配的 Region;
  • 负责与底层的 HDFS 交互,存储数据到 HDFS;
  • 负责 Region 变大以后的拆分以及 StoreFile 的合并工作。

与 HMaster 的协同:当某个 RegionServer 宕机之后,ZK 会通知 Master 进行失效备援。下线的 RegionServer 所负责的 Region 暂时停止对外提供服务,Master 会将该 RegionServer 所负责的 Region 转移到其他 RegionServer 上,并且会对所下线的 RegionServer 上存在 MemStore 中还未持久化到磁盘中的数据由 WAL 重播进行恢复。

下面给大家详细介绍下 Region Serve数据存储的基本结构,如下图所示。一个 Region Server 是包含多个 Region 的,这里仅展示一个。 一文带你读懂 Hbase 的架构组成[通俗易懂]

  • Region:每一个 Region 都有起始 RowKey 和结束 RowKey,代表了存储的Row的范围,保存着表中某段连续的数据。一开始每个表都只有一个 Region,随着数据量不断增加,当 Region 大小达到一个阀值时,Region 就会被 Regio Server 水平切分成两个新的 Region。当 Region 很多时,HMaster 会将 Region 保存到其他 Region Server 上。

  • Store:一个 Region 由多个 Store 组成,每个 Store 都对应一个 Column Family, Store 包含 MemStore 和 StoreFile。

    • MemStore:作为HBase的内存数据存储,数据的写操作会先写到 MemStore 中,当MemStore 中的数据增长到一个阈值(默认64M)后,Region Server 会启动 flasheatch 进程将 MemStore 中的数据写人 StoreFile 持久化存储,每次写入后都形成一个单独的 StoreFile。当客户端检索数据时,先在 MemStore中查找,如果MemStore 中不存在,则会在 StoreFile 中继续查找。
    • StoreFile:MemStore 内存中的数据写到文件后就是StoreFile,StoreFile底层是以 HFile 的格式保存。HBase以Store的大小来判断是否需要切分Region。

当一个Region 中所有 StoreFile 的大小和数量都增长到超过一个阈值时,HMaster 会把当前Region分割为两个,并分配到其他 Region Server 上,实现负载均衡。

  • HFile:HFile 和 StoreFile 是同一个文件,只不过站在 HDFS 的角度称这个文件为HFile,站在HBase的角度就称这个文件为StoreFile。

  • HLog:负责记录着数据的操作日志,当HBase出现故障时可以进行日志重放、故障恢复。例如,磁盘掉电导致 MemStore中的数据没有持久化存储到 StoreFile,这时就可以通过HLog日志重放来恢复数据。

4.ZooKeeper

HBase 通过 ZooKeeper 来完成选举 HMaster、监控 Region Server、维护元数据集群配置等工作,主要工作职责如下:

  • 选举HMaster:通ooKeeper来保证集中有1HMaster在运行,如果 HMaster 异常,则会通过选举机制产生新的 HMaster 来提供服务;
  • 监控Region Server: 通过 ZooKeeper 来监控 Region Server 的状态,当Region Server 有异常的时候,通过回调的形式通知 HMaster 有关Region Server 上下线的信息;
  • 维护元数据和集群配置:通过ooKeeper储B信息并对外提供访问接口。

5.HDFS

HDFS 为 HBase 提供底层数据存储服务,同时为 HBase提供高可用的支持, HBase 将 HLog 存储在 HDFS 上,当服务器发生异常宕机时,可以重放 HLog 来恢复数据。

另外,非常欢迎大家加我VX: Abox_0226 ,备注「进群」,有关大数据技术的问题在群里一起探讨。

原文地址:https://www.cnblogs.com/datadance/archive/2022/05/16/16276543.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5261.html

(0)
上一篇 2023-05-16
下一篇 2023-05-16

相关推荐

  • Python中文词频统计

    Python中文词频统计在文本处理中,词频统计是一个重要而常见的任务,可以用于文本分类、数据挖掘等应用。而Python作为一门广泛应用于文本处理的语言,其丰富的开源库和工具使得中文文本处理变得更加简单而高效。

    2024-09-13
    27
  • sql将一行拆成多行_sql中如何将输出的数据换行

    sql将一行拆成多行_sql中如何将输出的数据换行例如 根据dqty1 数值分行,并记录第几行 表 TID cname dqty1 A 2 B 3 C 4 在查询或者是视图中,怎么变成 cname dqty count A 2 1 A 2 2 B …

    2023-02-12
    151
  • MySQL索引优化分享「建议收藏」

    MySQL索引优化分享「建议收藏」想要提高数据库查询效率,可以通过高质量量的SQL,正确的使用索引,合理的数据库表结构(符合3NF),或者提高系统硬件水平。 那么索引有那些特点可以帮助我们优化并且高效的使用它呢? 1,Explain…

    2023-03-04
    141
  • Oracle中的函数——Trunc()[亲测有效]

    Oracle中的函数——Trunc()[亲测有效]trunc(exp1) trunc(exp1)和Round(exp1,exp2)类似,只不过trunc()不指定截取的小数位数进行处理,只取到整数位,不做舍去处理 select trunc(123.1

    2023-02-20
    156
  • 记一次MySQL字符串索引优化方案

    记一次MySQL字符串索引优化方案本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等字符串建立索引的优化1.建立前缀索引假设建立一个支持邮箱登录的用户表,对于邮件字段来说,可以有以下几种建立索引的方式:①.直接…

    2023-03-21
    163
  • 大数据技术之Hive 第1章 Hive基本概念「终于解决」

    大数据技术之Hive 第1章 Hive基本概念「终于解决」第1章 Hive基本概念 1.1 什么是Hive 1)hive简介 Hive:由Facebook开源用于解决海量结构化日志的数据统计工具。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的

    2023-05-21
    146
  • Python函数:简化重复代码并提升可复用性

    Python函数:简化重复代码并提升可复用性Python作为一种高级的编程语言,拥有强大的函数功能,可以帮助程序员轻松地创建可重用的代码块。函数的主要作用是将代码打包成一个模块,可以被多次调用。利用函数可以减少重复代码,提升代码的可读性和可维护性。在本文中,我们将详细介绍Python函数的各种用法和技巧,帮助读者更好地理解和使用Python函数。

    2024-01-21
    107
  • MySQL数据库远程访问权限的两种打开办法

    MySQL数据库远程访问权限的两种打开办法在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,mysql的用户没有远程访问的权限。 下面介绍两种方法,解决这一问题。 1、改表法 可能是…

    2023-02-14
    141

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注