添加新节点后如何重新平衡 cassandra 集群

2024-02-25

我有一个 3 节点 cassandra 集群,复制因子为 2。节点运行 dsc1.2.3 或 dsc1.2.4。每个节点的 num_token 值为 256,并且initial_token 被注释。这个 3 节点集群完美平衡,即每个节点拥有大约 30% 的数据。

其中一个节点崩溃了,所以我启动了一个新节点,然后 nodetool 删除了崩溃的节点。新节点已添加到集群中,但两个旧节点现在拥有大部分数据(47.0% 和 52.3%),而新节点仅拥有 0.7% 的数据。

Nodetool状态的输出是

Datacenter: xx-xxxx
===================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address           Load       Tokens  Owns   Host ID                               Rack
UN  10.xxx.xxx.xxx    649.78 MB  256     47.0%  ba3534b3-3d9f-4db7-844d-39a8f98618f1  1c
UN  10.xxx.xxx.xxx    643.11 MB  256     52.3%  562f7c3f-986a-4ba6-bfda-22a10e384960  1a
UN  10.xxx.xxx.xxx    6.84 MB    256     0.7%   5ba6aff7-79d2-4d62-b5b0-c5c67f1e1791  1c

我如何平衡这个集群?


您没有提到在新节点上运行修复,如果您确实还没有这样做,则可能是新节点上缺少数据的原因。

在运行节点工具修复之前,新节点只会保存写入其中的新数据或读取修复拉入的数据。如果我正确理解 vnode,则使用 vnode 通常不需要重新平衡,但我个人还没有开始使用 vnode,所以我的想法可能是错误的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加新节点后如何重新平衡 cassandra 集群 的相关文章

随机推荐