Hbase架构及读写流程

架构:
客户端
拥有访问hbase的接口,同时维护缓存,加速hbase的访问

zookeeper
	保证集群中只有一个master
	存储root region的位置信息
	各组件之间的协调服务
	检测regionserver的上下线,通知hmaster
hmaster
	给region server分配region
	将宕机的regionserver维护的region转交给其他regionserver
hregionserver
	维护region,负责region的IO操作
	如果一个reigon写的很大,则负责切割region(region的裂变)
region
	一个region对应一个表中的若干列,region中数据有序存放
	按照rowkey的字典序排序。
memstore
	属于特定的store,一个store对应一个列族
	在内存存储数据
storefile
	属于某个store,一个store会有零到多个storefile,最终以hfile的形式在HDFS存储,storefile中的数据也是有序的
WAL
	预写日志,防止数据丢失

hbase的数据模型
四个指标定位一个cell的值

rowkey
	唯一
	字典序排列
	64k空间用于存放内容
列族
	一个列族单独有一个store存储
列标志符
	用于标识列族中的列,灵活的添加
时间戳/版本号
	它是字段的值的一个维度,默认情况时间戳就是数据提交的时间,毫秒值。
	0.96之前,默认时间戳三个,0.96及之后默认一个时间戳

读写流程:

读流程:

1、客户端和zookeeper通信,获取root region的地址
2、客户端从root region获取指定表的meta region
3、从meta region获取表中特定rowkey所在的region
4、从查找到的region读取数据
5、首先从memstore查询数据
6、如果查不到就到blockcache查询数据
7、如果还没有,则从storefile查询数据
8、将数据放到blockcache中缓存并返回给客户端

写流程:

1、客户端找到region,写数据
2、首先检查是否需要写WAL
3、如果需要,就将数据先写到WAL中
4、然后将数据写到memstore并返回

LSMTree

minor compaction,major compaction
小合并,用于合并从memstore溢写到磁盘上的小文件,默认最小文件数是3,最大的是10个。合并的小文件有大小限制。
大合并,最终负责将所有store中所有的小文件合并为一个大文件。数据真正的删除也是在这个阶段做。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值