写流程
客户端先通过ZooKeeper的/hbase/meta-region-server节点查询到哪台RegionServer上有hbase:meta表
客户端连接含有hbase:meta表的RegionServer。 hbase:meta表存储了所有Region的行键范围信息, 通过这个表就可以查询出你要存取的rowkey属于哪个Region的范围里面, 以及这个Region又是属于哪RegionServer。
获取这些信息后, 客户端就可以直连其中一台拥有你要存取的rowkey的RegionServer
RegionServer收到写请求后会先写入WAL预写日志中,接着就会根据列簇将数据写入region的不同store的memory store中
最后memeory store会触发 将数据刷成hfile
客户端会把meta信息缓存起来,下次操作就不需要进行以上加载hbase:meta的步骤了,避免hbase:meta Region的热点问题
读流程
客户端先通过ZooKeeper的/hbase/meta-region-server节点查询到哪台RegionServer上有hbase:meta表
客户端连接含有hbase:meta表的RegionServer。 hbase:meta表存储了所有Region的行键范围信息, 通过这个表就可以查询出你要存取的rowkey属于哪个Region的范围里面, 以及这个Region又是属于哪RegionServer。
获取这些信息后, 客户端就可以直连其中一台拥有你要存取的rowkey的RegionServer
客户端读的时候先去BlockCache中读取数据,如果没有在去Memory Store和HFile中读取数据
