一、前言
HBase 是一个分布式、可扩展、面向列的适合存储海量数据的数据库,其最主要的功能是解决海量数据下的实时随机读写的问题。
二、核心对象
HBase是一个 Master/Slave 架构的分布式数据库,内部主要有 Master, RegionServer 两个核心服务,依赖 HDFS 做底层存储,依赖 zookeeper 做一致性等协调工作。
- Master 是一个轻量级进程,负责所有 DDL 操作、负载均衡、Region 信息管理。
- RegionServer 管理 HRegion,与客户端点对点通信,负责实时数据的读写,。
- Zookeeper 做 HMaster 选举,关键信息如: meta-region 地址、replication 进度、Regionserver 地址与端口等存储。
三、架构图解
HBase 数据存储基于 LSM 架构,数据先顺序写入 HLog(默认情况下 RegionServer 只有一个 Hlog 实例),之后再写入 HRegion 的 MemStore 之中。
HRegion 是一张 HBase 表的一块数据连续的区域,数据按照 rowkey 字典序排列,RegionServer 管理这些 HRegion 。当MemStore达到阈值时触发flush操作,刷写为一个 HFile 文件,众多 HFile 文件会周期性进行 major/minor compaction 合并成大文件。(所有 HFile 与日志文件都存储在HDFS之上)
参考地址:
https://segmentfault.com/a/1190000018640891?utm_source=tag-newest