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