Cassandra 对等架构与 HBase 主从架构
目 录
一、导读
二、Cassandra 对等架构
2.1 核心组件
2.2 数据分布与副本
2.3 可调一致性(NRW)
2.4 反熵机制
三、HBase 主从架构
3.1 三大核心组件
3.2 Region 与数据文件
3.3 读写流程
3.4 高可用与一致性
四、两套架构对比与选型
4.1 选型思路
五、本篇小结
一、导读
第 01 篇认识了列族数据库的定位。两大代表 Cassandra 与 HBase 虽共享列族数据模型与 LSM-Tree 存储,却在分布式架构上大相径庭:Cassandra 走「对等无中心」(参考 Dynamo),HBase 走「主从中心化」(遵从 Bigtable)。本讲拆解这两套架构的组件与高可用、一致性机制。
二、Cassandra 对等架构
2.1 核心组件
组件 / 机制 | 职责 |
对等节点 | 无主节点,任意节点可读写,无单点故障 |
一致性哈希环 | 按分区键哈希定位数据所在节点,数据分布在环上 |
Gossip 协议 | 节点间定期交换状态,实现发现、失败检测与同步 |
副本策略 | SimpleStrategy / NetworkTopologyStrategy 决定副本分布 |
2.2 数据分布与副本
每条数据根据分区键计算哈希,落到一致性哈希环的某个节点,并按副本因子复制到环上后续多个节点。多数据中心用 NetworkTopologyStrategy 实现机架 / 机房感知的副本放置,提升容灾能力。
2.3 可调一致性(NRW)
Cassandra 用一致性级别(CL)在可用性与一致性间取舍:
// CQL 设置读写一致性级别 |
CONSISTENCY QUORUM; // 多数派副本确认,兼顾一致与可用 |
// 常用:ONE / QUORUM / ALL / LOCAL_QUORUM |
N 个副本、R 个读、W 个写满足 R + W > N 即能读到最新写入,这就是 Quorum(法定多数)策略。默认偏向最终一致,可按需调高。
2.4 反熵机制
为对抗副本间的数据偏差,Cassandra 提供三层机制:
- Hinted Handoff(提示移交):某副本宕机时,写请求由其他节点暂存,源节点恢复后回放。
- Read Repair(读修复):读时发现副本不一致,顺势把最新值写回过期副本。
- Repair(周期修复):基于 Merkle Tree 比对定期全量修复,属于运维必备。
三、HBase 主从架构
3.1 三大核心组件
组件 | 职责 |
ZooKeeper | 选主、元数据寻址、RegionServer 状态监控 |
HMaster | Region 分配与负载均衡、失效恢复、DDL |
RegionServer | 承载并服务 Region 的数据读写 |
3.2 Region 与数据文件
表按行键范围水平切分为多个 Region,由 RegionServer 管理。Region 大小超阈值会分裂(自动 split)。RegionServer 内部围绕每列族维护一套存储:
模块 | 作用 |
WAL(写前日志) | 先写日志再写内存,保证持久性 |
MemStore | 内存写缓冲,攒批后刷盘 |
BlockCache | 读缓存,加速热点数据 |
HFile(StoreFile) | 落盘的 LSM-Tree 存储文件 |
3.3 读写流程
客户端先经 ZooKeeper 定位 meta 表所在 Region,再逐层路由到目标 RegionServer。数据写入先落 WAL 再进 MemStore,刷盘为 HFile;读取先查 MemStore 与 BlockCache,未命中再读 HFile。
3.4 高可用与一致性
HMaster 宕机由 ZooKeeper 重新选主,即便全部 Master 宕机,Region 读写仍可用(Master 只做自动运维角色);RegionServer 宕机,其 Region 由 HMaster 重新分配。单行读写强一致(CP),底层数据存于 HDFS 多副本保障不丢。
四、两套架构对比与选型
维度 | Cassandra | HBase |
架构 | 对等无中心(Dynamo) | 主从中心化(Bigtable) |
一致性 | 最终一致,可调(AP) | 单行强一致(CP) |
协调 | Gossip + 一致性哈希 | ZooKeeper + HMaster |
存储底座 | 本地 SSTable | HDFS(多副本) |
部署复杂度 | 相对简单 | 依赖 HDFS + ZooKeeper,较重 |
生态 | 独立、云服务多 | 深度绑定 Hadoop 生态 |
4.1 选型思路
高并发写入、要求无单点、可容忍短暂不一致、部署独立 → Cassandra;需要强一致、深度融入 Hadoop 大数据生态、单行事务 → HBase。两者都面向海量写入,架构取向决定适用场景。
五、本篇小结
本讲拆解了列族数据库两套经典架构:Cassandra 以一致性哈希环 + Gossip + 可调一致性实现无中心高可用;HBase 以 ZooKeeper + HMaster + Region 实现主从强一致。理解两套架构的差异,是后续原理、部署与选型的基础。
下一篇进入核心原理,深入一致性哈希、Gossip、LSM-Tree 与副本策略。