news 2026/9/27 21:17:13

列族系列 · 第 02 篇——架构拆解:对等与主从两套设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
列族系列 · 第 02 篇——架构拆解:对等与主从两套设计

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 与副本策略。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 21:14:06

PB 中游标的使用:DECLARE CURSOR 与 FETCH 配 TaoToken 的 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 21:07:37

Python数据可视化 Pyecharts 系列配置

在当今信息化社会,数据的可视化已成为人们理解和分析复杂数据的重要手段。对于数据工作者而言,选择一个强大且灵活的可视化工具不仅有助于高效地呈现数据,还能够提升信息传递的效果和美感。Python作为一个广泛应用的编程语言,拥有众多数据可视化工具,其中pyecharts凭借其丰…

作者头像 李华
网站建设 2026/9/27 21:05:11

遥感影像泥石流检测数据集构建与YOLO训练全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 21:04:36

STM32CubeMX 6.14安装与配置避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华