大数据学习(105)-Hbase

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


HBase简介

HBase是一个基于Hadoop的分布式、可扩展、支持大数据存储的数据库。

**使用场景:**需要随机或实时读写大数据的场景

**目标:**支持数十亿行和数百万列的大表

底层技术对应关系:

|---------------|-------------------------|--------------------------------------|----------------------------------------------------|
| 分布式列存储 | BigTable | HBase(基于Hadoop) | BigTable是Google的分布式列存储系统,HBase是其开源实现,提供稀疏多维映射表。 |
| 分布式文件系统 | GFS(Google File System) | HDFS(Hadoop Distributed File System) | GFS是Google的早期分布式文件系统,HDFS是其开源版本,支持大规模数据存储。 |
| 海量数据处理框架 | MapReduce | Hadoop MapReduce | MapReduce是Google提出的分布式计算模型,Hadoop MapReduce是其开源实现。 |
| 分布式协同服务管理 | Chubby | Zookeeper | Chubby是Google的分布式锁服务,Zookeeper是其开源实现,用于协调分布式系统。 |

数据模型

HBase采用表来组织数据,采用命名空间(NameSpace)对表进行逻辑分组。

NameSpace: 命名空间,类似于mysql中的database,默认有default和hbase,用户表默认在default中

表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族。

行:每个HBase表都由若干行组成,每个行由可排序的**行键(row key)**来标识。

列:采用列族:列限定符的形式确定具体的一列。

列族:一个HBase表被分组成许多"**列族"(Column Family)**的集合,它是基本的访问控制单元。列族可以动态添加,但在定义表时需要指定至少一个列族,在使用某个列族时要事先定义。

列限定符:表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一起。列族里的数据通过**"列限定符"(Column qualifier)**来定位。

单元格:在HBase表中,通过行、列族和列限定符确定一个"单元格"(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte\[\],所以在定义表时无需定义数据的类型,使用时用户需要自行进行数据类型转换。

时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引, HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)

HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳,在进行数据存储的时,其采用key-value形式:Table + RowKey(升序) + ColumnFamily + Column + Timestamp --> Value

系统架构

HBase采用主从结构设计,基础存储依赖于HDFS,协调服务依赖于Zookeeper集群,HMaster负责HBase的管理操作,HRegionServer负责数据的相关操作。

客户端(Client)

客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程。

对于管理类操作,Client与HMaster进行RPC

对于数据读写操作,Client与HRegion Server进行RPC

Zookeeper服务器

Zookeeper是Chubby算法的一种开源实现

  1. 保证任何时候,集群中只有一个活跃的master,因为为了保证安全性会启动多个Master
  2. 存储所有Region的寻址入口
  3. 实时监控Region Server的状态,将Region Server的上下线的信息汇报给HMaster。
  4. 存储Hbase的元数据(Schema)包括,知道整个Hbase集群中有哪些Table,每个 Table 有哪些column family(列族)

Master服务器

主服务器主要负责表和Region的管理工作, 其实现类为 HMaste :

  • 对于表的操作:create, delete, alter
  • 对于 RegionServer 的操作:
  1. 实现不同Region服务器之间的负载均衡
  2. 在Region分裂或合并后,负责重新调整Region的分布
  3. 对发生故障失效的Region服务器上的Region进行迁移

Region服务器

Region服务器是HBase中最核心的模块,维护Master分配给他的 Region ,其实现类为 HRegionServer ,主要组成如下:

  • 一个Region服务器包含多个Region,这些Region共用一个HLog文件
  • Region由一个或者多个Store组成,每个Store保存一个 Columns Family。
  • 每个Strore又由一个MemStore和0至多个StoreFile组成。
  • MemStore存储在内存中,StoreFile存储在HDFS
  • StoreFile的底层实现是HFile

主要作用如下:

  1. 对于数据的操作:get, put, delete
  2. 对于 Region 的操作:splitRegion、compactRegion
相关推荐
PNP Robotics几秒前
【PNP具身解读】GPT6 Astra:具身智能新范式,大模型 + Franka机器人快速落地验证一、GPT6 Astra 背后的布局、数据与具身方向
人工智能·学习·机器学习·机器人
NailiConveyor14 分钟前
输送线方案设计的工程基础|布局与接口的技术考量|控制系统架构要点
大数据·自动化·制造·业界资讯
IT毕设梦工厂15 分钟前
计算机毕业设计选题推荐:基于大数据的城市空气污染物浓度数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·python·信息可视化·数据挖掘·数据分析·课程设计·数据可视化
小李不想当小白18 分钟前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb
那年窗外下的雪.19 分钟前
第 02 天:Linux 权限、inode、目录项与链接
学习·http
音符犹如代码20 分钟前
Kafka 接入 AI 的三条路线:MCP 提案、会话记忆与实时上下文
java·大数据·ai·kafka
XGStudio202437 分钟前
免费安全的 - 二维码转换工具
学习·ai
hengmeida1 小时前
楼宇控制柜标准化项目交付完整规范
大数据·网络·笔记
邵奈一1 小时前
【紧急处理ZCode事件】ZCode 工作区快照静默上传:检测方法与三层防护实践
人工智能·学习·大模型·国产
小K讲AI营销1 小时前
AI基础设施融资路径的中美比较:资本市场模式与政策金融模式
大数据·数据库·人工智能