Hbase读写流程:整体读取流程

8 篇文章 0 订阅
3 篇文章 0 订阅
本文详细介绍了HBase的数据读取流程,包括从客户端获取元数据、定位对应Region以及在RegionServer上读取数据的步骤。首先,客户端通过Zookeeper获取meta表所在regionserver,然后读取meta数据并缓存。接着,依据元数据找到正确的Region,并根据Rowkey确定具体写入的Region。读取数据时,首先查询Memstore,若无则查询StoreFile。如果列族启用缓存,首次查询结果会被放入BlockCache,二次查询时会优先检查BlockCache。
摘要由CSDN通过智能技术生成

Hbase读写流程:整体读取流程

  • 目标

    • 掌握Hbase数据读取整体流程
  • 分析

    #根据rowkey来判断读取哪个region
    get  ns:tbname , rowkey
    #读取所有Region
    scan ns:tbname
    
    • step1:获取元数据
    • step2:找到对应的Region
    • step3:读取数据
  • 实现

    • step1:获取元数据
      • 客户端请求Zookeeper,获取meta表所在的regionserver的地址
      • 读取meta表的数据
      • 注意:客户端会缓存meta表的数据,只有第一次会连接ZK,读取meta表的数据,缓存会定期失效,要重新缓存
        • 避免每次请求都要先连接zk,再读取meta表
    • step2:找到对应的Region
      • 根据meta表中的元数据,找到表对应的region
      • 根据region的范围和写入的Rowkey,判断需要写入具体哪一个Region
      • 根据region的Regionserver的地址,请求对应的RegionServer
    • step3:读取数据
      • 先查询memstore
      • 如果没有,就读取StoreFile
      • 如果查询的列族开启了缓存机制
        • 第一次
          • 先查询MEMStore
          • 没有就查询StoreFile
          • 查询到以后,将查询结果放入读缓存BlockCache
        • 第二次
          • 先查询MEMStore
          • 再查询BlockCache
          • 最后查询StoreFile
  • 总结

    • RegionServer
    • Region
      • Store
        • Memstore
          • BlockCache
          • StoreFIle
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值