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

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

1

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

image.png
点击这里查看视频讲解:【赵渝强老师】HBase的存储结构

下面分别进行介绍。

一、 命名空间(NameSpace)

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

image.png
点击这里查看视频讲解:【赵渝强老师】HBase的命名空间

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

(1)查询系统表hbase:namespace

> scan 'hbase:namespace'# 输出的信息如下:
ROW        COLUMN+CELL    default	column=info:d, timestamp=1631601267690, value=\x0A\x07defaulthbase		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的字典顺序进行排列。

image.png
点击这里查看视频讲解:【赵渝强老师】HBase的表

表在行的方向上分隔为多个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组成。

image.png
点击这里查看视频讲解:【赵渝强老师】HBase的列族

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

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

http://www.jsqmd.com/news/97639/

相关文章:

  • Stressapptest系统稳定性检测与内存性能评估完整指南
  • OpenRouter 模型聚合平台,提供超多免费模型使用
  • 免费终极工具Pintr:快速将照片转化为专业线条画
  • 立体声到5.1环绕声:用Python解锁影院级音效的完整指南
  • 【C++】:priority_queue的理解,利用和模拟实现
  • 【赵渝强老师】阿里云大数据生态圈体系
  • 28、实用脚本程序介绍
  • LangFlow支持iflow协议吗?兼容性全面测评
  • 29、脚本杂谈:实用脚本的解析与优化
  • 30、脚本杂谈:m1 宏处理器与 sed 命令速览
  • 31、Awk 脚本语言快速参考指南
  • 2025年年终消防机器狗场景落地商推荐:聚焦工业与地下救援场景的可靠性验证及高适应性案例盘点 - 品牌推荐
  • 2025年年终消防机器狗场景落地商推荐:聚焦智能感知与协同作业能力的系统化评估与高口碑之选 - 品牌推荐
  • 2025年热门的婴儿湿巾优质厂家推荐榜单 - 行业平台推荐
  • wgai全栈AI解决方案终极指南:3分钟快速部署完整教程
  • 2025年年终消防机器狗场景落地商推荐:基于极端环境实战效能验证的深度解析与高可靠性方案盘点 - 品牌推荐
  • 开源TTS新星:GPT-SoVITS语音自然度评测报告
  • 物流跟踪小程序开发 订单物流一键查询 可提供源码
  • WGAI:零门槛Java AI开发平台,让智能应用触手可及
  • ThingsBoard Vue3现代化物联网前端部署终极指南
  • Advanced Science 一种结构简化、能同时精准感知物体内外特征的触觉系统
  • 不可变对象:让你的并发编程so easy
  • GPUI Component终极指南:60个组件打造现代化桌面应用
  • 快速掌握ndb调试器:从零基础到高级实战的完整指南
  • 5分钟解决Pydantic AI中MCPServerStdio环境变量传递失效的技术指南
  • Orleans智能告警治理:从告警洪流到精准预警的实战转型
  • 终极完整版FF14 XIVLauncher快速启动器使用宝典
  • 7大分布式监控告警降噪实战:从告警风暴到精准定位
  • Langchain-Chatchat负载均衡配置建议
  • 智能体记忆持久化方案:将Anything-LLM作为向量记忆库