HBase:实现Scan查询所有、get根据rowkey查询一行或一列数据

查询整体过程:

1.client访问zk,查找-ROOT-表,获取.META.表信息

2.从.META.表查找,获取存放数据的region信息(找到region sever)

3.最后通过RegionServer获取查找的数据

了解ROOT表和META表的结构:

META表里面包含了region的信息(一行),region信息包括:region name(对应row_key),还有region sever(就是哪个sever管理这个region的)等信息

META存放了太多的region信息了,可能太大,会被分成多个region的,那么,META表的region怎么管理呢?就让ROOT表来管理吧,ROOT表也是同样的结构,只是管理的是META表的region信息而已。当然,ROOT表不可能会非常大的,不需要其它表来管理了

也就是:META表管理的是实际创建的表的region信息,ROOT表管理的是META表的region信息。

所以先client--->root---->meta--->region sever这个顺序。

看看什么是RegionServer

数据的读写操作,都是在RegionServer上操作的,RegionServer它一方面维护region的状态,提供对region的管理和服务(增删改查等),一方面跟Master交换,上传region的负载信息,参与Master的分布式协调管理(就是要负载均衡)

最后查找还得是通过RegionServer来操作,到这里,client--->root---->meta--->region sever----->获取数据 整个流程就打通了。

其实,最后在查询数据的时候,会先查menstore,没有再查block cach,最后才查hfile的。

HBase-Region详解

https://blog.csdn.net/wypersist/article/details/79820715

HBase-Region详解
https://blog.csdn.net/wypersist/article/details/79820715

HBase-Region详解

猜你喜欢

转载自blog.csdn.net/wypersist/article/details/80220630