hbase全重点面试题笔记

hbase的体系结构
	client:
		提供了访问hbase的各种接口
		维护了一个缓存,缓存最近的访问记录,用来加快访问hbase	
	zookeeper:
		监控hMaster,保证有一个活跃的节点来管理整个集群
		实时监控HregionServer的状态,并将其通知给HMaster
		存储hbase的元数据信息,比如meta,meta-region-server表
	HMaster
		负责对region的切分,分配
		负责regionServer的负载均衡
		负责客户端的schema请求
		负责hdfs上的垃圾回收
	HRegionServer
		负责本机region的管理
		真正负责客户端的读写请求
		负责与hdfs上进行交互
	Hlog
		记录下客户端的所有请求,防止机器宕机,可以进行回滚操作
		格式是WAL格式
	region
		region是hbase的最小存储单元,可以是一张表,也可以是一张表的一部分
		region的名字是由rowkey的行范围来进行标识的
	store
		region又被划分为很多的store,store对应的是一个列族,也是hdfs下的一个目录,所以不同列族下的数据在不同的文件目录下面
		里面维护了一个memStore
	memStore
		写入数据真正进行操作的地方,数据写入后会进行对rowkey的排序,通过rowkey的(长度,时间)等进行排序
		memestre有一个阈值,阈值是内存的40% 或者一小时 或者128M
	StoreFile
		当mem达到阈值,就会flush成一个storefile,所以storefile有很多个,当达到一定的数量阈值之后,就会对storefile进行合并操作,去掉过多的版本号,以及标记要删除的值
		storefile也有一个阈值为10G,当达到阈值10G,就会造成storefile的切分,storefile的切分也会造成region的切分,将一个region切分成两个新的region,一个旧的region下线,两个新的region上线
hbase的存储机制:

1.region是hbase的最小的存储单位,region是一张表,也可以是一张表的一部分,region的名字是由rowkey的行范围来进行划分的
2.region里面维护了很多的store,store对应一个列族,也对应hdfs上的一个存储的目录,store里面维护了一个memstore
3.memstore是真正对数据进行操作的地方,memstore会对写入的数据进行rowkey的排序,根据rowkey(长度,版本戳)等进行拍序,memestore有一个阈值是128M或者内存的40%或者一小时
4.当memestore达到阈值,就会将数据flush成一个个storefile,所以storefile就会有多个,当达到一定的数量的阈值,就会进行store file的合并操作,过滤掉版本号过多的单元格,以及标记删除的单元格,当达到阈值10G就会造成storefile的切分,storefile的切分会引起region的切分,将一个旧的region切分成两个新的region,一个旧的region下线,两个新的region上线
5.最后flush成hfile保存在hdfs上
hbase的写流程
1.client通过zookeeper的调度,想hmaster发出请求,请求在region写入数据
2.数据被写入到region中的memstore中知道memestore达到阈值128M或者1小时或者内存的40%
3.memestore达到阈值flush成storefile,所以storefile有多个,当达到一定的数量阈值就会进行合并操作,将过多的版本号,以及标记要删除的rowkey过滤掉
4.storefile会随着时间越来越大,当到达阈值10G,就会造成storefile的切分,storefile的切分就会引起region的切分,一个旧的region切分成两个新的region,旧的region下线,两个新的region上线
5.最后形成hfile持久化存储在hdfs上面
布隆过滤器:
	原理:布隆过滤器是一个由64kb的初始权威0的位数组和n个hash函数组成的,每存入一个值就会对这个值进行n的hash函数的运算,运算之后得到n个下标,将这些得到的下标值全都赋值为1

	用处:当要检查一个值是否在这个region中的时候,我们就可以通过n个hash函数的计算,得到n个下标,在数组中进行判断,如果这n个下标中有一个是0,这个值一定不在这个region中,如果这n个下标都是1,这个值也不一定在这个region中
rowkey的设计原则:
1.唯一性原则(避免出翔覆盖)
2.长度一致原则(避免出现排序异常)
3.散列原则(避免热点key问题) 将设计的rowkey进行反转
4.加盐方式(在rowkey前面加随机字符串)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值