美文网首页
HBase读取(GET/SCAN)流程

HBase读取(GET/SCAN)流程

作者: ryancao_b9b9 | 来源:发表于2020-08-06 15:57 被阅读0次

一、概述

  1. 先从Zookeeper中找到meta表所在的Regionserver的信息
  2. 根据namespace、表名、以及rowKey查找数据所在的RegionServer的信息,向对应的regionServer建立连接并发起读取数据请求;
  3. Regionserver会先从MemStore上找,再从SotreFile(先CacheBlocks再HFile)上读取数据。

二、图解


Hbase Get 流程

三、扩展
1、为什么不把META表信息直接保存在ZK中?
ZK中不宜保存大量数据,而META表主要是保存Region和RegionServer的映射信息,Region的数量没有具体约束,只要在内存允许的范围内,Region数量可以有很多,如果保存在ZK中,ZK的压力会很大。通过一个ROOT-表来转存到RegionServer中是一个比较理想的方案,相比直接保存在ZK中,也就多了一层-ROOT-表的查询,对性能来说影响不大。

2、每次访问都需要走ZK –> -ROOT- —> .META.的流程么?
不需要,Client端有缓存,第一次查询到相应region所在RS后,这个信息将被缓存到Client端,以后每次访问都直接从缓存中获取RS地址即可。当然这里有个意外:访问的region若果在RS上发生了改变,比如被balancer迁移到其他RS上了,这个时候,通过缓存的地址访问会出现异常,在出现异常的情况下,Client需要重新走一遍上面的流程来获取新的RS地址。总体来说,region的变动只会在极少数情况下发生,一般变动不会很大,所以在整个集群访问过程中,影响可以忽略。

相关文章

  • HBase读取(GET/SCAN)流程

    一、概述 先从Zookeeper中找到meta表所在的Regionserver的信息 根据namespace、表名...

  • HBase读操作

    对于HBase而言读取操作有两种,即get和scan。按实现上来看的话,get请求也是一种scan请求,相当于sc...

  • HBase里的读取

    往往在实时系统里面,读取占了很大一部分业务。hbase身为实时系统主要提供了get与scan两种方法读取数...

  • 一条数据的HBase之旅,简明HBase入门教程-Read全流程

    这是《一条数据的HBase之旅》系列文章的第4篇,介绍HBase Get/Scan的核心实现思路。 系列文章 在阅...

  • 六、HBase读取流程

    1、HBase读取流程 流程分四步: 1.1、Client-Server读取交互逻辑 1.1.1、Client从Z...

  • Hbase 读取流程

    Hbase 读取复杂原因: 主要基于两个方面的原因: 一是因为HBase一次范围查询可能会涉及多个Region、多...

  • Hbase Scan 主要流程分析.md

    Hbase Scan 流程分析 公司在集群在从0.94.6升到0.98.6-cdh5.2.0后, 原来执行的hba...

  • HBase扫描操作Scan

    HBase扫描操作Scan 1 介绍 扫描操作的使用和get()方法类似。同样,和其他函数类似,这里也提供了Sca...

  • hbase scan客户端服务端流程

    hbase scan客户端服务端流程 一:基础知识了解: scanner可分为两种InternalScanner和...

  • HBase学习笔记(二)

    HBase优化相关 HBase查询优化 1、设置scan缓存 scanner.SetCaching(10000) ...

网友评论

      本文标题:HBase读取(GET/SCAN)流程

      本文链接:https://www.haomeiwen.com/subject/apwzrktx.html