hbase快速入门之---系统架构


Ø Client
HBase Client 使用 HBase RPC 机制与 HMaster HRegionServer 进行通信,对于管理类操作, Client HMaster 进行 RPC ;对于数据读写类操作, Client HRegionServer 进行 RPC
Ø Zookeeper
Zookeeper Quorum 中除了存储了 -ROOT- 表的地址和 HMaster 的地址, HRegionServer 也会把自己以 Ephemeral 方式注册到 Zookeeper 中,使得 HMaster 可以随时感知到各个 HRegionServer 的健康状态。此外, Zookeeper 也避免了 HMaster 的单点问题。
Ø Hmaster
HMaster 没有单点问题, HBase 中可以启动多个 HMaster ,通过 Zookeeper Master Election 机制保证总有一个 Master 运行。
HMaster 在功能上主要负责 Table Region 的管理工作:
1. 管理用户对 Table 的增、删、改、查操作
2. 管理 HRegionServer 的负载均衡,调整 Region 分布
3. Region Split 后,负责新 Region 的分配
4. HRegionServer 停机后,负责失效 HRegionServer 上的 Regions 迁移

ØHRegionServer 主要负责响应用户 I/O 请求,向 HDFS 文件系统中读写数据,是 HBase 中最核心的模块。

ØHRegionServer 内部管理了一系列 HRegion 对象,每个 HRegion 对应了 Table 中的一个 Region HRegion 中由多个 HStore 组成。每个 HStore 对应了 Table 中的一个 Column Family 的存储,可以看出每个 Column Family 其实就是一个集中的存储单元,因此最好将具备共同 IO 特性的 column 放在一个 Column Family 中,这样最高效。

ØHStore 存储是 HBase 存储的核心了,其中由两部分组成,一部分是 MemStore ,一部分是 StoreFiles
ØMemStore Sorted Memory Buffer ,用户写入的数据首先会放入 MemStore ,当 MemStore 满了以后会 Flush 成一个 StoreFile (底层实现是 HFile
Ø StoreFile 文件数量增长到一定阈值,会触发 Compact 合并操作,将多个 StoreFiles 合并成一个 StoreFile ,合并过程中会进行版本合并和数据删除,因此可以看出 HBase 其实只有增加数据,所有的更新和删除操作都是在后续的 compact 过程中进行的,这使得用户的写操作只要进入内存中就可以立即返回,保证了 HBase I/O 的高性能。
Ø StoreFiles Compact 后,会逐步形成越来越大的 StoreFile ,当单个 StoreFile 大小超过一定阈值后,会触发 Split 操作,同时把当前 Region  Split 2 Region ,父 Region 会下线,新 Split 出的 2 个孩子 Region 会被 HMaster 分配到相应的 HRegionServer  上,使得原先 1 Region 的压力得以分流到 2 Region 上。
Ø 下图描述了 Compaction Split 的过程。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值