1.hbase的特点:
1.它介于nosql和RDBMS之间,仅能通过主键(row key) 和主键的range来检索数据,仅支持单行事务,
2.Hbase查询数据功能简单,不支持join等复杂的操作
3.不支持复杂的事务
4.hbase中支持的数据类型:byte[]
5.主要用来存储结构化和半结构化的松散数据
2.描述Hbase的rowkey的设计原则
1.长度原则,推荐10-100个字节
2.散列原则,避免我们的数据热点问题,导致我们的数据都只在一个region上。
3.唯一性原则
3.简述HBase的compact用途是什么,什么时候触发,分为哪两种,有什么区别?
将小文件合并成大文件
小文件数量达到一定数量
minor合并(轻量级)和major合并(重量级)
两者的区别是:major合并会把之前被标记删除的数据,还有过期的数据等数据都会被删除,而minor合并不会这样
4.HBase的容错性
1.hmaster的容错性
2.regionServer容错性
3.zookeeper的容错性
4.Hlog的使用,region的重新写的操作
5.在Hbase中的通过哪些条件来唯一确定一个单元格的值
rowkey,列族+列,版本号
6.描述Hbase的核心功能模块及作用,
client:包含访问Hbase的接口,并维护cache来加快对Hbase的访问。
Master:为regionServer分配region,regionServer的负载均衡,发现失效的RegionServer并重新分配其上的region,管理用户对表的增删改查操作
RegionServer:维护region,处理对这些 region的IO请求,切分运行过程中变大的region。
7.Hbase的元数据表有那几张,他们里面都存放了什么内容?
-ROOT:
meta:存放了所有的region信息和regionServer信息。
8.zookeeper在Hbase中的作用是什么?
1.存放meta的元数据信息
2.存放Hmaster的信息
9.描述HBase读写数据的过程
1.写:
1,Client先访问zookeeper,从meta表获取相应region信息,然后找到meta表的数据
2,根据namespace、表名和rowkey根据meta表的数据找到写入数据对应的region信息
3,找到对应的regionserver
4,把数据分别写到HLog和MemStore上一份
5,MemStore达到一个阈值后则把数据刷成一个StoreFile文件。(若MemStore中的数据有丢失,则可以总
HLog上恢复)
6,当多个StoreFile文件达到一定的大小后,会触发Compact合并操作,合并为一个StoreFile,(这里同时进行
版本的合并和数据删除。)
7,当Storefile大小超过一定阈值后,会把当前的Region分割为两个(Split),并由Hmaster分配到相应的
HRegionServer,实现负载均衡
2.读:
1,Client先访问zookeeper,从meta表读取region的位置,然后读取meta表中的数据。meta中又存储了用户表的
region信息。
2,根据namespace、表名和rowkey在meta表中找到对应的region信息
3,找到这个region对应的regionserver
4,查找对应的region
5,先从MemStore找数据,如果没有,再到StoreFile上读(为了读取的效率)。