《HBase权威指南》读书笔记 第八章:架构:读取数据、region生命周期、ZK数据结构

读取数据

读取数据的难点在于,有可能一行数据储存在多个文件中,也有可能在memstore中。例如,同一个row key在不同的时间写入不同列的数据,那么取这个row key所有列的时候就需要扫描多个文件。

get操作从实现上来说,和scan操作是一样的。

get或者scan操作内部实现机制步骤如下:

  1. 根据时间戳、布隆过滤器快速排除一些文件,这些文件中绝不可能包含需要取的KeyValue。
  2. 从最新的store file开始扫描,每个文件只扫描需要的block,根据行键进行扫描

region的生命周期

region的生命周期总共有如下几种状态:

  • offline:下线状态
  • pending open:打开region的请求已经发送到了服务器
  • opening:服务器开始打开region
  • open:region已经打开,并且可以使用了
  • pending close:关闭region的请求已经发送到了服务器
  • closing:服务器开始关闭region
  • closed:服务器已关闭region
  • splitting:正在切分region
  • splitted:region切分完成

Zookeeper

zk中包含以下重要信息:

  • /hbase/hbaseid:集群编号
  • /hbase/master:主节点的编号
  • /hbase/replication:保存副本信息
  • /hbase/root-region-server:包含-ROOT- region的节点
  • /hbase/rs/:保存每个region server的状态信息、服务器异常信息,都是临时节点
  • /hbase/shutdown:用于跟踪集群的状态,包括集群的启动时间,集群被关闭时的空状态
  • /hbase/splitlog:保存日志拆分的状态信息
  • /hbase/table:当表被禁用时,节点数据为DISABLED
  • /hbase/unassigned:包含未打开的region

你可能感兴趣的:(读书笔记)