HBase架构

HBase架构

(一)架构图
在这里插入图片描述
在这里插入图片描述
Region: 是 HBase 将一个表中的所有数据按照 RowKey 的不同范围进行切割的逻辑单元,每个 Region 负责一定范围数据的读写访问。Region 由 RegionServer 负责管理。HBase 中的 Region的概念就和 HDFS 中的数据块的概念差不多,Region 是 HBase 表切分出来的一个分片。数据块是 HDFS 中的一个大文件切分出来的一个分片。
HMaster: HBase 的主节点,负责整个集群的状态感知、负载分配、负责用户表的元数据(schema)管理(可以配置多个用来实现 HA),HMaster 负载压力相对于 HDFS 的 NameNode会小很多。HBase 的 HMaster 其实就算是宕机一段时间也可以正常对外提供服务的(要搞清楚为什么)。
RegionServer: HBase 中真正负责管理 Region 的服务器,也就是负责为客户端进行表数据读写的服务器。每一台 RegionServer 会管理很多的 Region,一个 RegionServer 上面管理的所有的region不属于同一张表。负责Region的拆分,负责和底层的HDFS的存储交互,负责StoreFile的合并。
ZooKeeper: 整个 HBase 中的主从节点协调,元数据的入口,主节点之间的选举,集群节点之间的上下线感知……都是通过 ZooKeeper 来实现
HDFS: 用来存储 HBase 的系统文件,或者表的 Region 文件
Client: Client 包含了访问 HBase 的接口,另外 Client 还维护了对应的 Cache 来加速 HBase 的访问,比如 Cache 的.META.元数据的信息。
(二)Hbase 存储架构详细描述
HBase中的存储包括:Hmaster,HRegionServer,HRegion,Store,MemStore,StoreFile,HFile,HLog
1. Client 使用Hbase的RPC机制与HMaster,HRegionServer进行通信,Client与Hmaster进行管理类通信,与HRegionServer进行数据操作类通信。
HRegionServer内部管理了一些列HRegion对象,每一个HRegion对应Table中有一个Region。HRegion由多个Store组成。每个Store对应Table中的一个ColumnFamily的存储,即一个Store管理一个Region上的一个列簇。每个Store包含一个MEMStore和0到多个StoreFile。Store是Hbase的存储核心,由MemStore和storeFile组成。
2. MemStore是一个有序的内存缓冲区,用户写入数据首先放入MemStore,当MEMStore满了以后生成一个StoreFile,存储在HFile,当StoreFile数量增到一定阈值,触发Compact合并,将多个StoreFiles合并成一个StoreFile。当StoreFile的总大小超过阈值(hbase.hregion.max.filesize)即触发分裂Split,把当前的Region Split分成两个Region,父Region下线,新split的2个Region被HMaster分配到合适的HRegionServer上,使得原先一个Region的压力得以分流到2个Region上。
3. 数据在写入时,首先预写日志,每个HRegionServer服务的所有Region的写操作日志都存储在一个日志文件Hlog中。数据并非直接写入HDFS,而是等到缓存到一定数量再批量写入,写入完成在日志中做标记。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值