HBase 原理_4 | 学习笔记

简介: 快速学习 HBase 原理_4

开发者学堂课程【HBase入门教程HBase 原理_4】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/397/detail/5064


HBase 原理_4


内容介绍

一、HBase 存储模型

二、HBase 数据模型


一、HBase 存储模型

Region

HBase 自动把表水平划分成多个区域(region),每个 region 会保存一个表里面某段连续的数据;每个表一开始只有一个 region,随着数据不断插入表,region 不断增大,当增大到一个阀值的时候,region 就会等分会两个新的region(裂变);

table 中的行不断最多,就会有越来越多的 region。这样一张完整的表被保存在多个 Regionserver 上。

一个表对应多行数据,当数据很大的时候就会对表进行切分。刚开始创建表的时候只有一个 region。当一个 regio 再一直编写的时候就会变成很大很大,就会对表按照等分的原则来进行切分。一个表就被切分成两个 region,两个region 里面的数据本身是有顺序的。当数据再进行写入,当第一个 region 又变成很大很大,就又会对它按照等分的原则来进行切分,再产生两个 region

image.png

频繁的产生裂变,对应的 RegionServer 就会越来越多;HMaster 发现 RegionServer 的个数过多,它就会将这台Region 移动到其他的 RegionServer 上面。从而保证 RegionServer 负载是平均的。

image.png


二、HBase 数据模型

Memstore storefile

Memstore 是内存区域,写什么东西就是在 Memstore 里面写

一个 region 由多个 store 组成,一个 store 对应一个 CF(列族)

region 是将数据进行水平的切分,一个 region 里面代表连续的数据

store 包括位于内存中的 memstore 和位于磁盘的 storefile 写操作先写入 memnstore,memstore 中的数据达到某个阀值,hregionserver 会启动 flashcache 进程写入 storefile,毎次写入形成单独的一个 storefile

本身内存区域的都比较小,产生的 storefile 文件也是小文件。按照正常逻辑,会对这个文件做一些合并,合并成大文件来处理。

合并分为两种

minor(属于小范围的合并,一般来说就是个位数,3~5个;随时可以进行合并,只要 storefile3~5个触碰到了它的法制就可以进行合并)、major(属于大范围的合并-前一个列族进行合并之后,后一个列族就会一起合并)

合并之后不能在允许再次访问,所以需要进行优化
storefile 文件的数量增长到一定阈值后,系统会进行合并(minormajor compaction),在合并过程中会进行版本合并和删除工作(majar),形成更大的 storefile

此版本对应的是一个单元格,而不是一行单元格

示例:

假如版本数是1

最高的版本是1,它对应 cf1:name zhangsan

再插入 lisi  

插入 lisi 的时候不是马上就把 zhangsan 删除

是在合并的时候进行删除(合并的时候发现最高的版本是1zhangsan 是低版本,它就会把低版本都进行删除)

image.png

当一个 region 所有 storefile 的大小和数量超过一定阈值后,会把当前的 region 分割为两个,并由 hmaster 分配到相应的 regionserver 服务器,实现负载均衡
客户端检索数据,先在 memstore ,找不到再找 storefile

memstore 是写缓存

写缓存-写的时候要往内存存储区写

读缓存-一块内存缓存区域,每做一个读请求的时候,执行的结果会放到内存缓存区域里面,下次再读的时候之前有操作就会直接从内存缓存区域里面读取出来。

下图大框是 store,大框右上角是 memstore,大框下的两个框是 storefile

如果读取的数据没有读到 storefile,它就是再 memstore 里面。

memstore 是写缓存,不是读缓存。读缓存是从内存里面来读;如果读取的数据是在右边 storefile 读,它的结果不会在 memstore 内存里面存储

读缓存-第一次读请求的时候,内存缓存区域就会把这一次操作加载结果加载到缓存区域里面;第二次在读取的时候,如果是相同操作,就不需要在往大框里面拿取了,就直接从缓存区域里面拿取。


image.png

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库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
相关文章
|
5月前
|
存储 SQL 分布式计算
技术心得记录:深入学习HBase架构原理
技术心得记录:深入学习HBase架构原理
|
存储 负载均衡 监控
HBase分布式数据库架构及原理
Client是操作HBase集群的入口,对于管理类的操作,如表的增、删、改操纵,Client通过RPC与HMaster通信完成,对于表数据的读写操作,Client通过RPC与RegionServer交互,读写数据。
674 0
HBase分布式数据库架构及原理
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
137 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
6月前
|
存储 算法 分布式数据库
HBase原理 | HBase内部探险
HBase原理 | HBase内部探险
118 0
|
存储 缓存 负载均衡
98 hbase原理
98 hbase原理
67 0
|
存储 运维 监控
分布式数据库HBase的重要机制和原理的宕机恢复和故障处理
HBase是一个分布式数据库系统,支持高可用性、高性能和高伸缩性。在分布式环境中,数据的分布式存储和管理是非常重要的。HBase通过分布式存储和管理数据来实现高可用性和高性能。同时,HBase还提供了一些重要的机制和原理来支持宕机恢复和故障处理。
442 1
|
存储 分布式计算 关系型数据库
|
存储 缓存 负载均衡
HBASE原理整理
HBASE原理整合
184 0
|
存储 容灾 大数据
分布式数据库HBase的重要机制和原理的容灾与备份机制
在当今的互联网时代,数据的安全性和可靠性已经成为了企业的核心竞争力之一。而在大数据领域,分布式数据库HBase作为一个开源的分布式数据库系统,因其高性能、高可靠性和易于扩展性等特点,受到了广泛的应用。本文将深入探讨HBase中的重要机制之一:容灾与备份机制,帮助开发者更好地理解和掌握HBase的工作原理。
434 0
|
存储 负载均衡 大数据
分布式数据库HBase的重要机制和原理的负载均衡原理
在当今的互联网时代,数据的存储和处理已经成为了企业的核心竞争力之一。而在大数据领域,分布式数据库HBase作为一个开源的分布式数据库系统,因其高性能、高可靠性和易于扩展性等特点,受到了广泛的应用。本文将深入探讨HBase中的重要机制之一:负载均衡原理,帮助开发者更好地理解和掌握HBase的工作原理。
389 0