hbase 基础 —— 架构

hbase 基础 —— 架构

典型的主从架构。其中 RegionServers 负责与客户端的交互,访问数据 HMaster 负责 Region 分配,DDL(create, delete tables) 操作。

1. Regions

hbase table 根据 RowKey 划分成多个 Region,Region 包含所划分范围的所有行数据。Region 存放于集群中的某个节点,称为 Region Server,其负责数据的读取与写入。一个 Region Server 可以处理大约 1000 个 regions.

hbase 基础 —— 架构

 2. HMaster

主要有两个作用,一个是协调 Region Server,包括启动时分配 Region,故障恢复或负载均衡时重分配 Region,还包括监控集群中的所有 Region Server 实例(监听来自 zk的通知)。二是管理功能,比如 creating, deleting, updating tables

hbase 基础 —— 架构

 3. Zookeeper

负责维护集群中 Server的状态(可用或不可用),并且提供服务故障通知。如果 RegionServer 失败了,通知给 active HMaster。如果 active HMaster 失败了,通知给 Inactive HMaster。

hbase 基础 —— 架构

4. meta cache

hbase 中有一个特殊的 catalog 表叫作 meta 表,用于存储集群中 Region 的位置。 Zookeeper 用于保存 meta 表所在位置。

举例:

① 客户端从 Zookeeper 中查询 meta 表位于哪个 rs

② 再查询 META 表获取想要找的 row key 所在 rs。缓存这两步操作(下次直接从缓存中读,不需要经过这两个步骤)。

③ 从第二步查询到的 rs 中查询 row key 所在 Row

hbase 基础 —— 架构

5. meta 表

meta 表保存系统中所有 region 的信息,类似一个 b tree

hbase 基础 —— 架构

6. region server 中的组件

wal (Write Ahead Log)用于数据恢复

BlockCache 读缓存

MemStore 写缓存

Hfiles 磁盘存储

hbase 基础 —— 架构

参考文章


https://mapr.com/blog/in-depth-look-hbase-architecture/

相关推荐