HBase读写流程

 写流程

 

 

这里主要考虑两件事:

  • RegionServer保存不同范围的Region,那么我想读写数据的时候,我怎么知道Region和Server的映射关系,即我怎么知道我要的Region保存在哪个Server上呢?
  • MemStore刷写回StoreFile的时机是?

 

回答第一问题,答案是,把映射关系保存在一张meta表中,meta表保存在其中一个节点。那问题又来了,meta表我怎么知道它存在哪里呢?答案是,meta表的meta表保存在zookeeper约定位置处~

所以,写流程是这样的。

  • client访问zk,获取meta表保存位置
  • 请求meta表
    • 为了效率,meta表会保存在缓存中
  • 写入
    • 通过meta表找到目标region,发送数据,写入
    • 首先写入wal,然后保存到MemStore,排序
    • 向客户端返回ack

 

读流程

 

 

读流程

理解了写流程,读流程就简单了。

  • 关于meta表和写流程的一致

要注意的是两点:

  • 读的时候,为了查询速度,假如了缓存,存放在Block Cache
  • 由于多个存储位置,所以读的时候是Block Cache - MemStore - StoreFile

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值