hbase中的row key_从零开始学习大数据系列(五十四) HBase数据读取流程

本文详细介绍了HBase的数据读取过程,包括Client-Server交互逻辑,Server端的Scanner Iterator体系,如何过滤HFile中不符合条件的Key,以及从HFile中读取指定Key的步骤,涉及Row Key、时间戳、过滤器、版本控制和布隆过滤器等关键概念。
摘要由CSDN通过智能技术生成
[本文2100字左右,预计阅读需要15-20分钟] 按照HBase数据存储流程,今天介绍一下HBase的数据读取流程, HBase的存储模型 及 数据写入流程 请自行查阅。 和数据写入流程相比,HBase的数据读取流程更加复杂。主要基于两方面原因:一是因为HBase一次范围查询可能涉及到多个Region、多块缓存甚至多个数据存储文件;二是因为HBase中更新操作以及删除操作的实现都很简单,更新操作并没有更新原有数据,而是使用时间戳属性实现了多版本;删除操作也并没有真正删除原有的数据,只是插入了一条标记为“deleted”标签的数据,而真正删除数据发生在系统异步执行Major Compact的时候。很显然,这种实现思路大大简化了数据更新、删除流程,但对数据读取设置了层层阻碍:读取过程需要根据版本进行过滤,对已经标记删除的数据也要进行过滤。读取流程从头到尾可以分为以下4个步骤:
  • Client-Server读取交互逻辑。

  • Server端Scan框架体系。

  • 过滤淘汰不符合查询条件的HFile。

  • 从HFile中读取待查找Key。

Client-Server读取交互逻辑

Client-Server的通用交互逻辑:Client首先从ZooKeeper中获取元数据hbase:meta表所在的RegionServer,然后根据带读写rowkey发送请求到元数据所在RegionServer,获取数据所在的目标RegionServer和Region(并将这部分元数据信息缓存到本地)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值