HBase基础问答题

1. hbase:meta放在哪里,以什么形式存在?

hbase:meta 以表的形式存放在hbase中的regionserver 上。
hbase:meta 保存所有的regions列表。 zookeeper中保存所有的位置信息。

2. client 读写细节

client 通过查找 hbase:meta 表,找到指定提供服务的regionservers。并且获取hbase:meta的元数据。在定位所需的regions后,client联系 指定区域的regionservers为regions提供服务,而不是通过hmaster,然后开始执行读写。

hbase:meta 被缓存在内存中。假如该region分裂或者regionserver宕了,client 重新查询meta表,以确定用户区域新位置。

3. client无论读写都要找zookeeper为什么?

4. masterb也要去找zookeeper为什么?

master需要知道regionserver在台主机上,zookeeper保存了当前的regionserver

5. hbase数据存储

  1. 所有的数据都是存储在hdfs上,主要包括hfile, storefile
  2. Hfile: Hbase中keyvalue数据的存储格式,HFile是hadoop二进制格式文件。
  3. StoreFile: 对HFile做轻量级封装。 可以说是StoreFile就是HFile
  4. HLogFile,HBase中WAL的存储,物理上的squence file

memstore和storefile

HBase只是增加数据,更新和删除操作都是在compact阶段做,所以,用户写操作只需要进入内存即可立即返回,保证了IO高性能

HLog文件结构

WAL,日志预处理,用于灾难恢复。老版本中每个regionserver维护一个Hlog,而不是每个region

新版本可以设置每个region维护一个log, 优缺点反之 。