栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hbase全重点面试题笔记

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前面加随机字符串)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/335737.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号