Hbase写入过程

在这里插入图片描述

概念

如上图:

  • HMaster管理多个HRegionServer
  • 一个RegionServer存在多个HRgion
  • 一个HRegion有一个预写日志和多个store
  • 一个store存在一个memoryStore和多个StoreFile
  • StoreFile是HFile的逻辑实现,其实就是一个东西

写入流程:

  • 首先客户端配置zookeeper的地址,然后去zookeeper获取元数据表存放的位置
  • 然后找到具体的regionserver的地址与对应的表
  • 向内存中写入数据,到此对于客户端就结束了,所以hbase的写入速度很快
  • 当内存中的数据到达一定的阈值时触发flush机制,保存为storeFile
  • 当storeFile的某一个大小超过一定的阈值或者总的容量到达一定阈值时会触发compact
  • 当region的容量达到一定的阈值后会分裂一个新的region

注:compact 分为两次合并,小合并只是合并部分HFile,并标记一些过期与删除的文件,并不会真的删除

大合并是合并所有的文件,物理删除

寻址过程

在这里插入图片描述

上面提高通过zookeeper找到元数据

我一直以为是保存了元数据,其实只是元数据表的位置

在低版本中:

  • 先zookeeper中找到root表的regionserver的地址,从这步完成就脱离zookeeper进入hbase了

  • 然后到root表去找到meta表的位置,root表示meta表的索引表

  • 最后再meta表中找到具体的表

寻找RegionServer
ZooKeeper–> -ROOT-(单Region)–> .META.–> 用户表

-ROOT-表
表包含.META.表所在的region列表,该表只会有一个Region;
Zookeeper中记录了-ROOT-表的location。

.META.表
表包含所有的用户空间region列表,以及RegionServer的服务器地址。

————————————————
版权声明:本文为优快云博主「Running_Tiger」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_41455420/article/details/79546367

注意:

  • 元数据客户端会缓存一份,如果失败了再去重新获取

  • 元数据表对于hbase都是保存在内存中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值