非关型数据库之Hbase(二)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 非关型数据库之Hbase(二)

3 Hbase组件及其功能

image.png


3.1 客户端

客户端包含访问Hbase的接口,是整个Hbase系统的入口,使用者通过客户端操作Hbase,客户端使用Hbase的RPC机制与HMaster和RegionServer进行通信。


3.2 Zookeeper

Zookeeper是一个高性能、集中化、分布式的应用程序协调服务,主要用来解决分布式应用中用户遇到的数据管理问题。在Hadoop中Zookeeper主要用于实现高可靠性(High Availability,HA),包括HDFS的NameNode和YARN的ResourceManager的HA。以HDFS为例,NameNode作为HDFS的主节点,负责管理文件系统的命名空间以及客户端对文件的访问,同时还需要监控整个HDFS中每个DataNode的状态,实现负载均衡和容错。为了实现HA需要由多个NameNode并存,一个处于活跃状态其他则是备用状态,当处于活跃状态的NameNode无法正常工作时,处于备用状态的节点会通过竞争选举产生新的活跃节点。Zookeeper在Hbase中的功能如下:


Master选举

       与HDFS中的竞选机制一样,Hbase中有多个Master并存,但只有一个HMaster处于活跃状态,当处于活跃状态的HMaster无法正常工作时,从其余备用Master中通过选举出一个新的HMaster,保证集群的高可靠性。


系统容错

       在Hbase启动时,每个RegionServer在加入集群时都需要到Zookeeper中进行注册,创建一个状态节点,Zookeeper会实时监控每个RegionServer状态,当某个RegionServer挂掉时,Zookeeper会因为一段时间内没有接收到其心跳信息而删除该RegionServer对应的节点,并给HMaster发送节点删除通知,HMaster得知有RegionServer断开,会立即开启RegionServer容错机制参考博客


Region元数据管理

       在Hbase集群中,Region元数据被存储在Zookeeper中的Meta表里。每次客户端发起新的请求时,需要先查询Meta表中的Region的位置,当Region发生任何变更时,就能通过Zookeeper的Mate表来感知这一变化,保证客户端能够获取到正确的Region元数据信息。


Region状态管理

       Hbase中的Region会经常发生变更,其原因可能是系统故障、配置修改、Region的分裂及合并。只要Region发生任何变化,就需要使集群中的所有节点都知晓,然而集群中的Region数量会达到十万级甚至更多,如果交由Hbase处理则负担过大,所以只能依赖Zookeeper来完成。


提供Meta表存储位置

       Meta表中存储的数据库信息、列族信息、列族存储位置信息都属于元数据,而Mate表的位置入口由Zookeeper提供。


3.3 HMaster

管理用户对表的增、删、改、查操作。HMaster提供了对所有元数据增删改查的接口,便于用户与Hbase进行交互。

管理RegionServer的负载均衡,调整Region的分布。

Region的分配与移除。

处理RegionServer的故障转移。

3.4 RegionServer

       RegionServer主要负责响应用户的请求,向HDFS读写数据,一般在分布式集群中,RegionServer运行在DataNode服务器上,实现数据的本地性。


处理分配给它的Region

处理客户DAU你的读写请求

刷新缓存到HDFS

处理Region分片

执行压缩

4 Hbase数据模型及Hbase Shell

Hbase数据模型及Hbase Shell_扎哇太枣糕的博客-CSDN博客

5 Hbase原理实现

5.1 Region定位

5.1.1 Region

       在Hbase中,表中的行都是按照RowKey的字典顺序进行排序,表在行的方向上被分割成多个Region。每一张表一开始就只有一个Region,随着数据的不断插入,Hbase会根据一定的规则将表进行水平拆分最终形成多个Region。Region过多一台机器无法存储的下时,可分布式存储到多台机器上,HMaster将不同的Region分配到不同的RegionServer上。

image.png

             


        客户端在对表彰数据进行增删改查时需要知道数据存储在哪个RegionServer上,这个查找Region的过程就叫做Region定位。Region标识符可以唯一标志一个Region,Region标识符 = 表名+起始行键+时间戳+RegionID,其中RegionID等于(表名+起始行键+时间戳)进行MD5加密。其中第一个Region没有首行,最后一个Region没有末行。


5.1.2 Meta表

       Meta映射表的每个条目包含两项内容:Region标识、RegionServer标识,该条目表示了Region与RegionServer之间的对应关系,可以让用户知道该Region存储在哪个RegionServer上。总而言之,Meta表记录了元数据信息,使Region的定位变得精准且快速。


5.1.3 Region查找

       早期的Region查找使用三层架构:首先访问zookeeper的/hbase/root-region-server节点来得知ROOT表在哪个RegionServer上,然后访问ROOT表获取数据所在Meta表以及Meta表所在RegionServer的位置,接着访问META表找到数据所在的Region去访问。后来改为二层架构:客户端先通过查找ZooKeeper的Meta表,获取到查询的数据的Region元数据信息,按照元数据信息获取到相应的数据。


参考博客:HBase查询机制--Region定位_Fys的博客-CSDN博客_查看hbase 表的region


相关文章
|
7月前
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
275 12
|
分布式计算 Java Hadoop
杨校老师课堂之分布式数据库HBase的部署和基本操作
杨校老师课堂之分布式数据库HBase的部署和基本操作
187 0
|
存储 SQL 分布式数据库
深入解析HBase与关系数据库的关键差异
【8月更文挑战第31天】
411 1
|
存储 NoSQL Java
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
311 0
|
存储 分布式计算 Hadoop
【大数据】分布式数据库HBase下载安装教程
【大数据】分布式数据库HBase下载安装教程
651 0
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
133 3
|
2月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
2月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。

热门文章

最新文章