我有一个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
Run Code Online (Sandbox Code Playgroud)
我如何平衡这个集群?
您没有提到在新节点上运行修复,如果您确实尚未这样做,则可能是您在新节点上缺少数据的原因.
在运行nodetool修复之前,新节点将仅保存写入其中的新数据或读取修复所引入的数据.对于vnodes,如果我正确理解vnode,通常不需要重新平衡,但我个人还没有转向使用vnodes所以我可能错了.
| 归档时间: |
|
| 查看次数: |
12540 次 |
| 最近记录: |