Hbase的读写流程
1.hbase的公共流程
用户在访问数据时,如何找到该条数据对应的region呢?
通过rowkey对应regionserver
1.1.HBase 0.96以前
- 系统维护了两张表
- -ROOT-
- 使用-ROOT-表来记录.Meta.的存放位置
- -ROOT-表只需要一个Region,它不会被切分
- -ROOT-的Region信息被记录到Zookeeper
- .Meta.
- .Meta.表中存储了表对应Region对应的RegionServer Rowkey的区间
- 但是.Meta.也是一张普通的Hbase表,也需要存放到RegionServer
- -ROOT-
1.2.HBase 0.96以后
-
系统只维护.meta.表
-
Meta表更名为hbase:meta
-
.Meta.的位置信息由Zookeeper维护
-
2.hbase的读取数据流程
- 1.Client通过访问zookeeper拿到hbase:meta所在RegionServer的节点信息
- 2…Client在访问hbase:meta所在RegionServer,拿到hbase:meta记录的数据后
- 先加载到内存
- 然后从内存中根据需要查询的RowKey查询出RowKey所在的Regio