写数据流程
客户端现在要插入一条数据,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返回数据到客户端;