HBase总结
2021-08-11 18:18:20 1 举报
AI智能生成
登录查看完整内容
HBase学习总结
作者其他创作
大纲/内容
HBase是主从架构
操作HBase的接口,并维护客户端缓存
client
保证任何时刻集群中有且只有一台活跃的Master
所有region的元数据存储在那一台regionserver
存储所有region的寻址入口
监控regionserver的上线和下线信息,并实时通知master
存储相关表的schema数据
zookeeper
分配region
保证整个集群中的所有regionserver负载均衡
当发现某一台regionserver宕机,重新分配上面的region
当region变得太大,master去分配region到另一台regionserver
master
负载接受客户端的读写请求,处理region的IO
当某一个region变大后,负责将其等分为两个
regionserver
相当于表的概念,一张表至少一个region
当表的数据过大的时候,region会发生裂变
region
相当于列族
位于内存
每一个store有一个memstore
memstore
磁盘存储空间,将数据持久化到存储位置
每一个region有一个或多个storefile
storefile可以进行合并操作
storefile
存储结构:使用了LSM数据模型
角色
store
write ahead log
防止数据丢失
先写内存,再向hdfs上溢写,异步方式
WAL
1、 客户端向ZK中发送请求
2、 从ZK中拿到metadata的存储节点
3、 去存储metadata的节点获取对应region的所在位置
4、 访问对应的region获取数据
5、 先去memstore中查询数据,如果有结果,直接返回
6、 如果没有查询到结果,去blockcache查找数据,如果有,直接返回
7、 如果没有找到,去storefile中查找数据,并将查询到的结果缓存到blockcache中
8、 将结果返回给客户端
注意:blockcache是缓存,有大小限制,会有淘汰机制,默认将最早的数据淘汰
读
1、 客户端向ZK发送请求
3、去存储metadata的节点获取对应的region所在的位置
4、 访问对应的region写数据
5、 首先向wal中写数据,写成功之后才会存储到memstore
6、当memstore中的数据量达到阈值后,进行溢写,溢写成storefile
8、 storefile是对hdfs的封装,hfile是实际存储在hdfs上的数据文件
写
读写流程
架构
高可靠
高性能
面向列
可伸缩
实时读写
特点
十亿级别行
百万级别列
数据量
充分利用内存
使用了LSM树
缓存机制
文件是顺序读写
速度快的原因
HBase是数据库
相当于mysql中的主键,唯一标识一行数据
rowkeys是字典顺序的
rowkey的长度最长是64K,但是一般推荐0-100字节
rowkey
一组列的集合
列族必须作为表的schema定义的
列族是权限、存储的最小单元
column family
列
可以动态的 ,随机插入
表定义之后没有限制列,随着值的插入也把列插入
列必须归属于某一个列族
qulifier
时间戳,64位整数,精度是毫秒
起版本号的作用。一个cell中可以存在多版本的数据
时间戳可以自己定义,但不推荐
timestamp
存储数据的最小单元(逻辑概念,不存在)
K: rowkey+column+family+qulifier+timestamp
V: value
hbase的cell存放的数据都是字节数组,没有数据类型区分
cell
数据模型
HBase
0 条评论
回复 删除
下一页