hbase存储结构(HBase存储架构)

:暂无数据 2026-07-09 19:50:08 :0

hbase存储结构(HBase存储架构)

今天给各位分享HBase存储架构的知识,其中也会对HBase存储架构进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

HBase存储架构

上图是HBase的存储架构图。

由上图可以知道,客户端是通过Zookeeper找到HMaster,然后再与具体的Hregionserver进行沟通读写数据的。

具体到物理实现,细节包括以下这些:

***隐藏网址***

1、 /hbase/.archive
HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到.archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。

2、 /hbase/.corrupt
存储HBase损坏的日志文件,一般都是为空的。

3、 /hbase/.hbck
HBase 运维过程中偶尔会遇到元数据不一致的情况,这时候会用到提供的 hbck 工具去修复,修复过程中会使用该目录作为临时过度缓冲。

4、 /hbase/logs
HBase 是支持 WAL(Write Ahead Log) 的,HBase 会在第一次启动之初会给每一台 RegionServer 在.log 下创建一个目录,若客户端如果开启WAL 模式,会先将数据写入一份到.log 下,当 RegionServer crash 或者目录达到一定大小,会开启 replay 模式,类似 MySQL 的 binlog。

5、 /hbase/oldlogs
当.logs 文件夹中的 HLog 没用之后会 move 到.oldlogs 中,HMaster 会定期去清理。

6、 /hbase/.snapshot
hbase若开启了 snapshot 功能之后,对某一个用户表建立一个 snapshot 之后,snapshot 都存储在该目录下,如对表test 做了一个 名为sp_test 的snapshot,就会在/hbase/.snapshot/目录下创建一个sp_test 文件夹,snapshot 之后的所有写入都是记录在这个 snapshot 之上。

7、 /hbase/.tmp
当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作。

8、 /hbase/hbase.id
它是一个文件,存储集群唯一的 cluster id 号,是一个 uuid。

9、 /hbase/hbase.version
同样也是一个文件,存储集群的版本号,貌似是加密的,看不到,只能通过web-ui 才能正确显示出来

10、 -ROOT-
该表是一张的HBase表,只是它存储的是.META.表的信息。通过HFile文件的解析脚本 hbase org.apache.hadoop.hbase.io.hfile.HFile -e -p -f 可以查看其存储的内容,如下所示:

以上可以看出,-ROOT-表记录的.META.表的所在机器是dchbase2,与web界面看到的一致:

11、 .META.
通过以上表能找到.META.表的信息,该表也是一张hbase表,通过以上命令,解析其中一个region:

以上可以看出,adt_app_channel表的数据记录在dchbase3这台reginserver上,也与界面一致,如果有多个region,则会在表名后面加上rowkey的范围:

通过以上描述,只要找到-ROOT-表的信息,就能根据rowkey找到对应的数据,那-ROOT-在哪里找呢?从本文一开始的图中可以知道,就是在zookeeper中找的。进入zookeeper命令行界面:

可以看出-ROOT-表存储在 dchbase3 机器中,对应界面如下:

以上就是HBase客户端根据指定的rowkey从zookeeper开始找到对应的数据的过程。

那在Region下HBase是如何存储数据的呢?

以下就具体操作一张表,查询对应的HFile文件,看HBase的数据存储过程。

在HBase创建一张表 test7,并插入一些数据,如下命令:

查看wal日志,通过 hbase org.apache.hadoop.hbase.regionserver.wal.HLog --dump -p 命令可以解析HLog文件,内容如下:

查看HFile文件,内容如下:

由此可见,HFile文件就是存储HBase的KV对,其中Key的各个字段包含了的信息如下:

由于hbase把cf和column都存储在HFile中,所以在设计的时候,这两个字段应该尽量短,以减少存储空间。

但删除一条记录的时候,HBase会怎么操作呢?执行以下命令:

删除了rowkey为200的记录,查看hdfs,原来的HFile并没有改变,而是生成了一个新的HFile,内容如下:

所以在HBase中,删除一条记录并不是修改HFile里面的内容,而是写新的文件,待HBase做合并的时候,把这些文件合并成一个HFile,用时间比较新的文件覆盖旧的文件。HBase这样做的根本原因是,HDFS不支持修改文件。

hbase定义了以下哪个列系列

一、HBase定义
HBase是一种分布式、可扩展、支持海量数据存储的NoSql数据库
二、HBase数据模型
逻辑上,HBase的数据模型和关系型数据库类似,数据存储在一张表中,有行有列,但HBase的底层物流存储结构(k-v)来看,更像是一个多维度Map。
1、HBase逻辑结构
列族:相当于文件夹,图中name\ctiy\phone表示同一类信息。类似于mysql中宽表的切分
RowKey:行键,
Region:一张表的横向切片,把一张表进行数据切分。类似于mysql中高表的切分。
store: 存储
2、HBase 物理存储
HBase的存储:
表中的每一列的值

hbase中每个store保存的数据属于一个

你问的是hbase中每个store保存的数据属于一个什么吗?这种情况保存的数据属于一个列簇。
根据博客园网资料,hbase底层存储依赖于hdfs,hbase中table在行的方向上分割为多个region,但是region不是hbase物理存储的最小单元,它由一个或者多个store组成,每个store保存一个columnfamily,即列族。
列簇在hbase中是表的一部分,用于组织数据,类似于关系数据库中的表结构。列簇既可以在创建表时指定,也可以在表已经存在时动态添加,在hbase中,列簇的设计对数据的存储和检索效率有很大影响,良好的列簇设计可以提高系统的性能和可靠性。

hbase的三层结构中三层指的是哪三层

hbase的三层结构中三层指的是:
1、第一层为rowKey。
2、第二层为列名,包括列族和列后缀。
3、第三层就是版本也就是时间戳,不仅支持分布式存储,还支持高效随机读写。

hbase的核心数据结构是什么

hbase的核心数据结构为LSM树。

LSM树分为内存部分和磁盘部分。

内存部分是一个维护有序数据集合的数据结构。一般来讲,内存数据结构可以选择平衡二叉树、红黑树、跳跃表(SkipList)等维护有序集的数据结构,由于考虑并发性能,HBase选择了表现更优秀的跳跃表。

磁盘部分是由一个个独立的文件组成,每一个文件又是由一个个数据块组成。对于数据存储在磁盘上的数据库系统来说,磁盘寻道以及数据读取都是非常耗时的操作(简称IO耗时)。为了避免不必要的IO耗时,可以在磁盘中存储一些额外的二进制数据,这些数据用来判断对于给定的key是否有可能存储在这个数据块中,这个数据结构称为布隆过滤器(BloomFilter)。

LSM树介绍:

LSM树是一种磁盘数据的索引结构。LSM树的索引对写入请求更友好。因为无论是何种写入请求,LSM树都会将写入操作处理为一次顺序写,而HDFS擅长的正是顺序写(且HDFS不支持随机写)。

一个LSM树的索引内存部分是一个ConcurrentSkipListMap,Key是rowkey、column family、qualifier、type以及timestamp, Value是字节数组。随着数据不断写入MemStore,一旦内存超过阈值会将数据flush到磁盘,生产HFile;多个小HFile文件会compact成一个大HFile。

为什么hbase当中不要索引

实际上,HBase中也有索引机制,比如可以通过建立二级索引来提高数据的查询效率。但是,HBase中的索引机制与传统的关系型数据库的索引机制有所不同。
传统的关系型数据库索引机制通常使用B树等数据结构来实现,这种索引机制的优点是查询效率较高,缺点是索引数据量大时,维护索引的开销也会随之增加。而HBase中的数据存储是基于列族(column family)和行键(row key)的,HBase的数据存储结构是按行键排序的有序映射表,可以通过行键的前缀匹配来检索数据。因此,在HBase中,使用行键来查询数据的效率很高,而使用列来查询数据的效率相对较低。因此,为了提高查询效率,通常需要在设计HBase数据模型时,合理设置行键和列族,而不是使用传统关系型数据库中常用的各种索引。
另外,如果在HBase中使用过多的索引,会增加存储和维护的成本,可能会对HBase的性能和可伸缩性产生负面影响。因此,在使用HBase时,需要根据实际情况合理使用索引,权衡索引的优劣和使用成本。

关于hbase存储结构和HBase存储架构的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

hbase存储结构(HBase存储架构)

本文编辑:admin

更多文章:


孙侨潞电视剧(“小魔仙”孙侨潞猝死后,其邻居同学都爆了哪些料)

孙侨潞电视剧(“小魔仙”孙侨潞猝死后,其邻居同学都爆了哪些料)

大家好,如果您还对孙侨潞电视剧不太了解,没有关系,今天就由本站为大家分享孙侨潞电视剧的知识,包括“小魔仙”孙侨潞猝死后,其邻居同学都爆了哪些料的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 12:00

微信小程序爬虫(微信小程序能放php爬虫代码吗)

微信小程序爬虫(微信小程序能放php爬虫代码吗)

这篇文章给大家聊聊关于微信小程序爬虫,以及微信小程序能放php爬虫代码吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 11:50

form表单制作(为什么制作的form表单会在网页显示中多出一行)

form表单制作(为什么制作的form表单会在网页显示中多出一行)

大家好,如果您还对form表单制作不太了解,没有关系,今天就由本站为大家分享form表单制作的知识,包括为什么制作的form表单会在网页显示中多出一行的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 09:10

teammate(teammate,company,partner)

teammate(teammate,company,partner)

各位老铁们,大家好,今天由我来为大家分享teammate,以及teammate,company,partner的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧

2026年10月11日 06:10

javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)

javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)

其实javascript arraybuffer的问题并不复杂,但是又很多的朋友都不太了解javascript可以把base64编码转换成二进制代码吗求示例代码!,因此呢,今天小编就来为大家分享javascript arraybuffer的

2026年10月11日 04:00

text函数公式(excel中round和text函数的区别是什么)

text函数公式(excel中round和text函数的区别是什么)

“text函数公式”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看text函数公式(excel中round和text函数的区别是什么)!

2026年10月11日 03:50

pascal编程软件(介绍一下pascal语言!)

pascal编程软件(介绍一下pascal语言!)

大家好,如果您还对pascal编程软件不太了解,没有关系,今天就由本站为大家分享pascal编程软件的知识,包括介绍一下pascal语言!的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 02:40

google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)

google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)

本篇文章给大家谈谈google chrome打不开,以及chrome浏览器打不开怎么回事 浏览器打不开的处理方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了

2026年10月11日 02:00

websocket整合springboot(Springboot整合Websocket遇到的坑)

websocket整合springboot(Springboot整合Websocket遇到的坑)

大家好,websocket整合springboot相信很多的网友都不是很明白,包括Springboot整合Websocket遇到的坑也是一样,不过没有关系,接下来就来为大家分享关于websocket整合springboot和Springbo

2026年10月11日 01:40

小米官方首爆miui14(miui14耗电严重官方回应)

小米官方首爆miui14(miui14耗电严重官方回应)

各位老铁们好,相信很多人对小米官方首爆miui14都不是特别的了解,因此呢,今天就来为大家分享下关于小米官方首爆miui14以及miui14耗电严重官方回应的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月11日 00:40

最近更新

热门文章

打印机m7400(m7400打印机清零方法)
2026-08-29 07:50:01 浏览:5
acrobat各版本区别(Acrobat XI Pro与 Acrobat PRO DC什么区别)
2026-08-29 22:30:20 浏览:2
联想y510p怎么升级(联想y510p换cpu)
2026-08-17 03:30:04 浏览:2
标签列表