数据岗位面试题更新 2026-08-05

请说明在 Cassandra 集群中,新增节点和移除节点分别涉及哪些关键操作步骤与注意事项?

数据技术原理方案权衡问题排查Apache Cassandra

考察说明

考查对 Cassandra 集群节点生命周期管理(加入/移除)机制的理解,包括数据重分布、一致性影响与运维要点。

回答思路

  1. 【回答框架 1】节点加入时,新节点通过 gossip 协议发现集群现有节点,并获取集群元数据(如 token 范围)。新节点根据配置的 token(或使用 vnode 时随机生成多个 token)接管部分数据范围,通过流式传输(streaming)从相邻节点复制负责范围的数据,期间不影响集群读写可用性。
  2. 【回答框架 2】节点移除分两种方式:正常下线(decommission)使节点先将自身数据流式传输给其他节点,再退出集群;强制移除(remove)用于故障节点,需通过 nodetool removenode 触发,由协调节点将其负责的 token 范围重新分配给其他节点,并同步元数据。
  3. 【回答框架 3】操作时注意:加入节点需评估 token 分配策略(单 token 或 vnode),确保数据均衡;移除节点前建议先降低其负载,避免数据丢失。使用 gossip 与 hinted handoff 机制保证短暂故障期间写入不丢失,但若节点长时间不可用,需依靠修复(repair)保证最终一致性。
  4. 【回答框架 4】无论加入或移除,都应监控集群负载均衡、节点状态(UN/UJ/UL)以及数据流式传输进度,并在维护窗口操作,减少对应用的影响。对于大型集群,分批操作并验证各节点数据一致性。
  5. 【回答框架 5】加入节点后需等待流式传输完成并运行 nodetool cleanup 清理多余副本;移除节点后建议执行全量修复(repair),确保所有副本一致。
  6. 【关键点 1】节点加入通过 gossip 发现集群并接管 token 范围,以流式传输复制数据。
  7. 【关键点 2】节点正常下线用 decommission 先传数据再退出;故障移除用 removenode。
  8. 【关键点 3】操作需关注 token 分配均衡、数据复制进度及集群一致性,必要时运行 repair 修复。
  9. 【易错点 1】误将强制移除用于正常节点,导致数据未转移而丢失或重建压力大。
  10. 【易错点 2】未等待流式传输完成即视为操作结束,可能造成数据不一致或读取缺失。
  11. 【易错点 3】token 分配不合理导致热点,未配合 vnode 与负载均衡策略。