HBase读写数据流程

写数据流程

客户端现在要插入一条数据,rowkey=r000001, 这条数据应该写入到table表中的那个region中呢?

1/ 客户端要连接zookeeper, 从zk的`/hbase`节点找到`hbase:meta`表所在的regionserver(`host:port`);

2/ `regionserver`扫描`hbase:meta`中的每个region的起始行健,对比`r000001`这条数据在那个region的范围内;

3/ 从对应的 `info:server` key中存储了region是有哪个regionserver(`host:port`)在负责的;

4/ 客户端直接请求对应的regionserver;

5/ regionserver接收到客户端发来的请求之后,就会将数据写入到region中;

读数据流程

客户端现在要查询rowkey=r000001这条数据,那么这个流程是什么样子的呢?

 1/ 首先客户端连接zookeeper, 找到hbase:meta表所在的regionserver;

 2/ 请求对应的regionserver,扫描hbase:meta表,找到r00001所在的region是由那个regionserver负责的;

 3/ 请求负责管理r00001的region对应的regionserver;

 4/ regionserver收到了请求之后,扫描对应的region返回数据到客户端;

HBase读写数据流程_第1张图片

HBase读写数据流程_第2张图片

你可能感兴趣的:(HBase)