hbase查找数据流程理解

整体hbase 查找数据流程以hbase1.2.6 为例子

1 跟进zookeeper 获取对应的meta 表位置,meta 表位置只有1个在zookeeper 的目录是 /hbase/meta-region-server

    问题:为什么meta 表 只有一个位置?

    解答:和之前的hbase 寻址流程比 少了一次查询,并且一个meta 表中存储的regin信息足够用了,比如默认的一个region 是128M,meta 表中的信息一条不会太大,可以按照一条1kb 来计算,大家可以计算一下可以存储多少条,一条 就代表一个regionserver 信息

2 找到meta 表之后 是 如何找到 你要查找的这个rowkey 对应的 regionserver 呢

meta 表的rowkey 是以表名+startrowkey + 时间+md5 (这块大家可以具体百度一下)

查找rowkey 对应的region 这块逻辑 我认为hbase 的设计 就比较烧脑了

首先大家可以看看hbase 的反向查询api 有助于下方的理解

查找rowkey 对应的regionserver  是跟据hbase 的反向查询(这块会把一个范围内的数据 都查找出来)并取第一条记录

问题:如果根据hbase 反向查询 会不会查询出好多数据?

解答:如果按照正常逻辑会查询出一大堆的数据 这样性能肯定不好,hbase 在这里面做了比较牛逼的操作,规定了是大量查询还是小量查询,对应hbase 里的setSmall api ,这里大家可以具体了解这个small 的实现有助于更好的理解hbase 查询逻辑

3 找到了对应的regionserver 如何查找具体的数据呢

连接到具体的regionserver 里先从memstore 找数据,找不到会在从StoreFile 读取数据

以上3步,第2步,第3步 都会有缓存,如果调优的话大家可以看看hbase 的缓存管理器是如何选择的

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值