非关型数据库之Hbase(二)

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 非关型数据库之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


相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
分布式计算 Java Hadoop
杨校老师课堂之分布式数据库HBase的部署和基本操作
杨校老师课堂之分布式数据库HBase的部署和基本操作
60 0
|
3月前
|
存储 SQL 分布式数据库
|
5月前
|
存储 NoSQL Java
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
97 0
|
5月前
|
存储 分布式计算 Hadoop
【大数据】分布式数据库HBase下载安装教程
【大数据】分布式数据库HBase下载安装教程
158 0
|
5月前
|
存储 缓存 大数据
【大数据】分布式数据库HBase
【大数据】分布式数据库HBase
112 0
|
11天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
|
13天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
63 3
Mysql(4)—数据库索引
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
96 1
|
22天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
65 2
下一篇
无影云桌面