【赵渝强老师】HBase的逻辑存储结构

简介: HBase的逻辑存储结构包括命名空间、表和列族。命名空间类似关系型数据库中的数据库,用于逻辑划分和隔离数据;表以RowKey组织数据并按字典序排列,分为多个Region实现分布式存储;列族包含列且无需预先定义,由MemStore缓存写入数据,定期刷新生成Store File。文章通过视频和代码示例详细讲解了各部分的操作与功能。

副本_副本_副本_副本_副本_副本_副本_副本_副本_副本_副本_副本_Oracle-课程封面__2025-05-28+18_47_07.png

HBase的逻辑存储结构主要包括:命名空间(NameSpace)、表(Table)和列族(Column Family)。视频讲解如下:


下面分别进行介绍。


一、 命名空间(NameSpace)


HBase的命名空间相当于Oracle和MySQL中的数据库,它是对表的逻辑划分。不同的HBase命名空间类似于关系型数据库中的不同的数据库。利用命名空间的逻辑管理功能,可以实现在多租户场景下做到更好的资源和数据隔离。在系统表hbase:namespace中保存了的所有的命名空间信息。视频讲解如下:


通过下面的语句可以管理和操作HBase的命名空间。


(1)查询系统表hbase:namespace

> scan 'hbase:namespace'
# 输出的信息如下:
ROW        COLUMN+CELL                                                                 
 default  column=info:d, timestamp=1631601267690, value=\x0A\x07default 
 hbase    column=info:d, timestamp=1631601267862, value=\x0A\x05hbase       
2 row(s)

提示:这里可以看出在默认的情况下,HBase存在两个命名空间,即:default和hbase。如果没有指定命名空间,新表将创建在default命名空间下;而hbase命名空间是系统命名空间,一般不用于普通操作。


(2)查看命名空间也可以通过执行list_namespace命令,例如:

> list_namespace
# 输出的信息如下:
NAMESPACE                   
default                     
hbase                       
2 row(s)


(3)创建一个新的命名空间mydemo,并在mydemo命名空间中创建一张新表。

> create_namespace 'mydemo'
> create 'mydemo:table1','info'


(4)查看命名空间mydemo中的表。

> list_namespace_tables 'mydemo'
# 输出的信息如下:
TABLE                     
table1                    
1 row(s)


二、 表(Table)


HBase的表对应于关系型数据库中的一张表,HBase以表为单位组织数据,表由多行组成。每一行由一个RowKey和多个列族组成。Rowkey用于唯一标识一条记录。不同行的Rowkey可以重复,但相同的Rowkey表示同一条记录。为了加快查询数据的速度,HBase表中的所有行都按照RowKey的字典顺序进行排列。


表在行的方向上分隔为多个Region,而Region是HBase中分布式存储和负载均衡的最小单元。因此在同一个Region Server上可能保存了不同的Region,但一个Region只会属于一个Region Server。Region按大小分隔,而表中每一行只能属于一个Region。随着数据不断插入表,会使得Region不断增大。当Region中的某个列族达到一个阈值时就会分成两个新的Region,分裂后每一个新的Region大小是原来Region的一半。


视频讲解如下:


三、 列族(Column Family)


由于表中的一行上可能存在多个列族,因此Region可以被进一步地划分。每一个Region有一个或多个Store组成,HBase会把一起访问的数据放在一个Store里面,即一行上有几个列族,也就有几个Store。一个Store由一个MemStore和多个Store File组成。


视频讲解如下:


列族中包含列,列不需要事先创建。当插入数据时没有该列,HBase会自动创建列;列又是由单元格组成。

提示:MemStore是HBase的写缓存,用于保存修改的数据。当MemStore的大小达到一个阀值时,HBase会有一个线程来将MemStore中的数据刷新到HBase的数据文件中生成一个快照。这个快照就是Store File。





相关实践学习
云数据库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
目录
打赏
0
相关文章
【赵渝强老师】HBase的体系架构
HBase是一种基于BigTable思想的列式存储NoSQL数据库,适合数据分析与处理。其主从架构包含HBase HMaster、Region Server和ZooKeeper。HMaster负责Region分配及表管理;Region Server执行数据读写操作,并包含WAL预写日志、Block Cache读缓存和MemStore写缓存;ZooKeeper维护集群状态并协调分布式系统工作。通过视频讲解与架构图示,详细解析各组件功能与协作机制。
113 11
【赵渝强老师】HBase的物理存储结构
本文介绍了HBase的存储结构,包括逻辑与物理存储结构。物理存储主要涉及StoreFile、HFile和HLog日志。HFile是HBase数据存储的核心格式,包含Data块、Meta块、File Info块等六部分,支持压缩以优化存储。HLog(预写日志)记录数据变更,确保数据可靠性,并在Region Server故障时用于恢复。最后,文章详细描述了HBase的写数据流程:先写入WAL日志,再写入MemStore,最终通过Flush操作将数据持久化到HFile中。
212 2
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
本文介绍了百亿级数据存储架构的设计与实现,重点探讨了ElasticSearch和HBase的结合使用。通过ElasticSearch实现快速检索,HBase实现海量数据存储,解决了大规模数据的高效存储与查询问题。文章详细讲解了数据统一接入、元数据管理、数据一致性及平台监控等关键模块的设计思路和技术细节,帮助读者理解和掌握构建高性能数据存储系统的方法。
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
【赵渝强老师】HBase的体系架构
本文介绍了HBase的体系架构,包括HMaster、RegionServer和ZooKeeper的主要功能。HMaster负责Region的分配和管理,RegionServer处理数据的读写操作,ZooKeeper维护集群状态并协调分布式系统的运行。文章还详细解释了Region、WAL预写日志、Block Cache读缓存和MemStore写缓存的作用。
383 0
【赵渝强老师】HBase的表结构
本文介绍了Google的BigTable思想及其对HBase的影响。BigTable将所有数据存入一张表中以提高查询性能,而HBase作为其具体实现,采用列式存储,适合数据分析和处理。文章通过示例说明了HBase的表结构和数据插入方法,并提供了相关代码和图示。
310 0
Ubuntu22.04下搭建Hadoop3.3.6+Hbase2.5.6+Phoenix5.1.3开发环境的指南
呈上,这些步骤如诗如画,但有效且动人。仿佛一个画家在画布上描绘出一幅完美的画面,这就是你的开发环境。接下来,尽情去创造吧,祝编程愉快!
108 19
java使用hbase、hadoop报错举例
java使用hbase、hadoop报错举例
206 4
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
177 4
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
95 3
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
130 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问