hbase_存储模型
- Hbase 是按列存储,所以每个列族存储在一个HDFS文件上。
- Hbase表中的行是按照rowkey字典序进行排列的,并且表格在行的方向上被分割为多个region(按照行进行分割的)
- region 是hbase中分布存储和负载均衡的最小单元(不是存储的最小单元),不同region分布到不同regionserver上。
- region有一个或多个store组成,每个store保存一个columns family列族。
- 每个store又由一个memstore和0到多个storefile组成
- memstore存储在内存中,storefile存储在HDFS上
Hbase高速实现数据存储和访问源于hbase数据存储:
- 连接Zookeeper,从Zookeeper中找要读的数据。需要知道表中rowkey在region中的位置
- 客户端查找HRegionServer,HRegionServer管理众多Region
- HMaster也需要连接Zookeeper,链接的作用是:HMaster需要知道哪些HRegionServer是活动的及HRegionServer所在的位置,然后管理HRegionServer
- Hbase内部把数据写到HDFS上,DFS有客户端
- Region中包含HLog,Store, 若一张表有几个列族,就有几个Store。Store中有多个Memstore及storefile,storefile是对Hfile的封装,storefile真正存储在HDFS上。
- 所以写数据时先往Hlog上写一份,再往memstore上写一份,当memstore达到一定大小则往storefile上写,若memstore数据有丢失,则从Hlog上恢复。
- 而读数据时,先到memstore上读,再到storefiile上读,之后合并。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?