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

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

猜你喜欢

转载自blog.csdn.net/bigdatahyy/article/details/115211316