HBase学习笔记

本文是关于HBase的学习笔记,介绍了HBase作为分布式、列式存储的开源数据库,其与传统关系数据库的区别,以及其核心的Region服务器工作原理,包括用户数据的读写过程、缓存管理和StoreFile的合并等关键细节。

HBase简介

1) HBase定义
HBase是一种分布式、面向列的开源数据库。、具有良好的扩展性、低写入/查询延迟的特点。

2)HBase与传统的关系数据库的区别:

 

HBase

RDB

数据类型

简单的,存储为未经解释的字符串

丰富的数据类型和存储方式

数据操作

只有简单的插入、查询、删除和清空等

丰富的操作,如:多表连接

存储模式

基于列存储

基于行模式

数据索引

只有行键索引

多个索引

数据维护

生成新版,旧版仍保留

新值会替换旧值

可伸缩性

可扩展性强

很难扩展

3)HBase的功能组件

l  库函数:链接到每个客户端

l  一个Master主服务器

l  许多个Region服务器

HBase的三层结构

 


4)Hbase架构

                                                                                                 

 Region服务器工作原理

—  Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求

a.    用户读写数据过程

用户写入数据时,被分配到相应Region服务器去执行

用户数据首先被写入到MemStore和Hlog中

只有当操作写入Hlog之后,commit()调用才会将其返回给客户端

当用户读取数据时,Region服务器会首先访问MemStore缓存,如果找不到,再去磁盘上面的StoreFile中寻找

b.   缓存的刷新

系统会周期性地把MemStore缓存里的内容刷写到磁盘的StoreFile文件中,清空缓存,并在Hlog里面写入一个标记

每次刷写都生成一个新的StoreFile文件,因此,每个Store包含多个StoreFile文件

每个Regiom服务器都有一个自己的Hlog文件,每次启动都检查该文件,确认最后一次执行缓存刷新操作之后是否发生新的写入操作

c.    StorreFile的合并

每次刷写都生成一个新的StoreFile,数量太多,影响查找速度

调用Store.compact()把多个合并成一个

合并操作比较耗费资源,只有数量达到一个阈值才启动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值