当前位置: 首页 > news >正文

【赵渝强老师】HBase的体系架构

在这里插入图片描述

HBase是大表(BigTable)思想的一个具体实现。它是一个列式存储的NoSQL数据库,适合执行数据的分析和处理。简单来说,就是适合执行查询操作。从体系架构的角度看,HBase是一种主从架构,包含:HBase HMaster、Region Server和ZooKeeper,下图展示了这一架构。
在这里插入图片描述

其中:

  • HBase HMaster负责Region的分配及数据库的创建和删除等操作。
  • Region server负责数据的读写服务。
  • ZooKeeper负责维护集群的状态。
视频讲解如下

【赵渝强老师】HBase的体系架构

下面详细讨论HBase体系架构中每一个组成部分的作用。

一、 HMaster

HMaster是整个HBase集群的主节点,它的职责主要体现在以下几方面:

  1. 负责在Region Server上分配和调控不同的Region。
  2. 根据恢复和负载均衡的策略,重新分配Region。
  3. 监控Region Server的状态。
  4. 管理和维护HBase的命名空间,即NameSpace。
  5. 接收客户端的请求,提供创建,删除或者更新表格的接口。

另一方面,如果整个集群中只存在一个HMaser,将造成单点故障的问题。因此也需要基于ZooKeeper来实现HBase的HA(高可用)。但是HBase实现HA非常简单,因为在其体系架构中已经包含了ZooKeeper,因此只需要手动再启动一个HMaster作为Backup HMaster即可。

视频讲解如下

【赵渝强老师】HBase的主节点HMaster

二、 Region Server

Region Server负责数据的读写操作。一个Region Server可以包含多个Region,而一个Region只能属于一个Region Server。那么什么是Region呢?可以把Region理解成是列族,它与列族的关系是一对多的关系。HBase表中的列族是根据rowkey的值水平分割成所谓的Region的。在默认情况下,Region的大小是1G,其中包含8个HFile的数据文件。而每个数据文件的大小正好是128M,与HDFS数据块的大小保存一致。每一个Region server大约可以管理1000个Region。

Region Server除了包含Region以外,还包含WAL预写日志、Block Cache读缓存和MemStore写缓存三个部分。

视频讲解如下

【赵渝强老师】HBase的从节点Region Server

2.1 WAL预写日志

Write-Ahead Logging是一种高效的日志算法,相当于Oracle中的redo log,或者是MySQL中的binlog。基本原理是在数据写入之前首先顺序写入日志,然后再写入缓存,等到缓存写满之后统一进行数据的持久化。WAL将一次随机写转化为了一次顺序写加一次内存写,在提供性能的前提下又保证了数据的可靠性。如果在写入数据完成之后发生了宕机,即使所有写缓存中的数据都丢失了,也可以通过恢复WAL日志达到数据恢复的目的。写入的WAL日志会对应有一个HLog文件。

《从大数据到云原生系列课程》

2.2 Block Cache读缓存

HBase将经常需要读取的数据放入Block Cache中,来提供读取数据的效率。当Block Cache的空间被占满后,将采用LRU算法将其中被读取频率最低的数据从Block Cache中清除。

2.3 MemStore写缓存

MemStore中主要存储了还未写入磁盘的数据,如果此时发生了宕机,这部分数据是会丢失的。HBase中的每一个列族对应一个MemStore,其中存储的是按键排好序的待写入硬盘的数据,数据也是按Rowkey排好序写入HFile中的,最终保存到HDFS中。

提示:HBase表中的数据最终保存在数据文件HFile中,并存储与HDFS的DataNode上。在将MemStore中的数据写入HFile中的时候,采用顺序写入的机制,避免了磁盘大量寻址的过程,从而大幅提高了性能。在读取HFile的时候,文件中包含的Rowkey信息会被加载到内存中,这样就可以保证数据检索只需一次硬盘查询操作。

三、 HBase中的ZooKeeper

ZooKeeper在整个HBase集群中主要维护节点的状态并协调分布式系统的工作。主要体现在以下几方面:

  1. 监控HBase节点的状态,包括:HMaster和RegionServer。
  2. 通过ZooKeeper的Watcher机制提供节点故障和宕机的通知。
  3. 保证服务器之间的同步。
  4. 负责Master选举的工作。

视频讲解如下:

视频讲解如下

【赵渝强老师】HBase中的ZooKeeper

下图展示了HBase在ZooKeeper中保存的数据信息。
在这里插入图片描述

视频讲解如下

【赵渝强老师】HBase中的ZooKeeper

《从大数据到云原生系列课程》

http://www.xdnf.cn/news/680329.html

相关文章:

  • 从“学术杠精”到“学术创新”
  • 数据结构测试模拟题(2)
  • 改进yolo11模型学习
  • 真话与假话
  • #跟着Lucky学鸿蒙# HarmonyOS NEXT 工程介绍
  • jenkins-jenkins简介
  • 【Redis】Redis使用规范
  • 鸿蒙OSUniApp 制作带有分页功能的列表组件#三方框架 #Uniapp
  • Python实战:打造高效通讯录管理系统
  • 汽车副水箱液位传感器介绍
  • 项目中的流程管理之Power相关流程管理
  • 牛客周赛 Round 94
  • Linux中磁盘分区与挂载
  • c#基础08(数组)
  • 数据结构-散列表查找(哈希表)
  • qt QAxWidget
  • 嵌入式使用snprintf(str, sizeof(str), “ULV: %.3fV“,values);后出现小数部分丢失的错误以及解决方案
  • thinkadmin中使用layui日期选择器,数据库存储时间戳
  • 记录一ubuntu22.04做开机启动mysql、nginx、redis
  • java 数据输出占5列,右对齐
  • 柠檬(lemon)是什么东西?
  • 全视通智慧病房在护士站、病房及卫生间场景中的创新应用
  • brep2seq 源码笔记2
  • ISP图像处理算法之Demosaic
  • ns-3仿真_wifi发送链路简单解析
  • IEEE出版|2025年智能制造、机器人与自动化国际学术会议 (IMRA2025)
  • 精准调控:基于 SWMM 动态控制规则的合流制排水系统溢流污染防治技术
  • 开源模型应用落地-模型上下文协议(MCP)-安全认证的创新与实践探索(十)
  • 商城前端监控体系搭建:基于 Sentry + Lighthouse + ELK 的全链路监控实践
  • Unity Sherpa-onnx 笔记