HBase写流程
1、client向zookeeper发送请求,获取meta表所在的RegionServer的位置信息
2、zookeeper返回RegionServer信息
3、client向对应的RegionServer发送请求,获取meta表信息
4、相应的RegionServer返回meta表信息(客户端会对返回的meta表信息进行缓存 meta cache)
5、client根据表中的信息向对应的region所在的RegionServer发起写数据请求(通过表中的Rowkey查询到目标数据位于哪个RegionServer中的region中)
6、将数据写入预写日志WAL中,再由WAL写入MemStore中,并且再MemStore中对数据进行排序
7、RegionServer向客户端发送ack
HBase读流程
1、client向zookeeper发送请求,获取meta表所在的RegionServer的位置信息
2、zookeeper返回RegionServer信息
3、client向对应的RegionServer发送请求,获取meta表信息
4、相应的RegionServer返回meta表信息(客户端会对返回的meta表信息进行缓存 meta cache)
5、chient向RegionServer发送读数据请求,分别再BlockCache和MemStore中读取数据(BlockCache中有之前读取的数据缓存在那里),先读取BlockCache中的数据,如果没有找到再读取MemStore(HFile)中的数据,将查询到的数据块写入到BlockCache中,并对数据进行合并处理。(HFile中存储有数据信息以及数据的索引信息,根据索引查询数据效率更高)
6、将合并后的最终结果返回给客户端