存储
HBase架构图如下:
从图中可以看到HBase主要处理两种文件,WAL和实际的数据文件。这两种文件最终都存在HDFS中。
首次请求所需的步骤如下:
- 从zk中取得
hbase:meta
表所在的节点,路径为/hbase/meta-region-server
。 - 从
hbase:meta
表中读取元数据,根据元数据推测出数据所在的节点。 - 连接实际的数据节点取得数据。
其中步骤2的元数据会在客户端进行缓存,下次不用查meta表。下面介绍meta表的结构。
meta表中的key格式为[table],[region start key],[region id]
。笔者从实际运行的HBase实例中取了meta表中的一行数据,其key为test,,1496321078922.cd9c09dcebc92b7f3c3d26008bee32a3.
,从这个key中可以知道table
是test
,region start key
是空白,region id
是1496321078922.cd9c09dcebc92b7f3c3d26008bee32a3.
。