在同一个数据中心中,我们有一个Cassandra集群,其中有2个节点,键空间“ newts”的键空间复制因子为2。如果我以nodetool身份运行,我可以看到两个节点之间的负载有些相同,每个节点共享100%的负载。
我继续并添加了第三个节点,我可以在nodetool状态输出中看到所有三个节点。我将复制因子增加到三个,因为我现在有三个节点并在第三个节点上运行了“ nodetool repair”。但是,当我现在运行nodetool status时,我可以看到三个节点之间的负载不同,但是每个节点拥有100%的负载。怎么可能,这里有什么我想念的?
nodetool -u cassandra -pw cassandra status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 84.19.159.94 38.6 GiB 256 100.0% 2d597a3e-0120-410a-a7b8-16ccf9498c55 rack1
UN 84.19.159.93 42.51 GiB 256 100.0% f746d694-c5c2-4f51-aa7f-0b788676e677 rack1
UN 84.19.159.92 5.84 GiB 256 100.0% 8f034b7f-fc2d-4210-927f-991815387078 rack1
nodetool状态更新输出:
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 84.19.159.94 38.85 GiB 256 100.0% 2d597a3e-0120-410a-a7b8-16ccf9498c55 rack1
UN 84.19.159.93 42.75 GiB 256 100.0% f746d694-c5c2-4f51-aa7f-0b788676e677 rack1
UN 84.19.159.92 6.17 GiB 256 100.0% 8f034b7f-fc2d-4210-927f-991815387078 rack1
答案 0 :(得分:1)
添加一个节点后,现在有三个节点并将复制因子增加到三个-每个节点将拥有您的数据副本,因此拥有100%的数据。
在两个旧节点上添加第三个节点后,未运行nodetool cleanup
可能会导致“ Load”的卷不同-添加该节点时,不会删除sstables中的旧数据(但稍后清理和/或压缩):
加载-每90秒更新一次下的文件系统数据量 排除所有内容后的cassandra数据目录 快照子目录。由于包括了所有SSTable数据文件, 任何未清除的数据,例如TTL过期的单元格或 逻辑删除的数据)。
(来自https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsStatus.html)
答案 1 :(得分:0)
您只需在所有3个节点上运行nodetool repair,并在现有节点上一个接一个地运行nodetool cleanup,然后似乎又一个接一个地重启节点。