第三个Cassandra节点具有不同的负载

第三个Cassandra节点具有不同的负载,cassandra,Cassandra,我们有一个cassandra集群,在同一个数据中心中有两个节点,对于键空间newts,键空间复制因子为2。如果我运行nodetool status,我可以看到两个节点之间的负载有些相同,每个节点共享100% 我继续添加了第三个节点,可以在nodetool状态输出中看到所有三个节点。我将复制因子增加到了三个,因为我现在有三个节点,并在第三个节点上运行nodetool修复。但是,当我现在运行nodetool status时,我可以看到三个节点之间的负载不同,但每个节点拥有100%的负载。这是怎么回事

我们有一个cassandra集群,在同一个数据中心中有两个节点,对于键空间newts,键空间复制因子为2。如果我运行nodetool status,我可以看到两个节点之间的负载有些相同,每个节点共享100%

我继续添加了第三个节点,可以在nodetool状态输出中看到所有三个节点。我将复制因子增加到了三个,因为我现在有三个节点,并在第三个节点上运行nodetool修复。但是,当我现在运行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

当您添加一个节点时,现在有三个节点,并且将复制因子增加到三个-每个节点都将有一个数据副本,因此拥有100%的数据

在两个旧节点上添加第三个节点后未运行nodetool cleanup可能会导致不同的加载卷-添加节点时不会删除sstables中的旧数据,但在清理和/或压缩之后会删除:

Load—每90秒更新一次文件系统数据量 排除数据目录中的所有内容后的cassandra数据目录 快照子目录。因为包含了所有SSTable数据文件, 任何未清理的数据,如TTL过期单元格或 统计逻辑删除的数据


中,您只需在所有3个节点上运行nodetool repair,并在现有节点上逐个运行nodetool cleanup,然后逐个重新启动节点即可。

哪个版本的cassandra?nodetool status newts的输出是多少?添加节点后是否运行了nodetool cleanup?在所有新节点运行后,在每个以前存在的节点上运行nodetool cleanup以删除不再属于这些节点的键。等待清理在一个节点上完成,然后在下一个节点上运行nodetool清理。Cassandra 3.11.3,cqlsh 5.0.1。Nodetool status newts的输出在OP中更新。我没有运行Nodetool cleanup,我认为只有在删除节点时才需要它?@Rocherlee我在前两个现有节点上运行了Nodetool cleanup,每个节点上的命令在10秒内完成,Nodetool status的输出没有更改。您好,我尝试在两个原始节点上运行nodetool cleanup,但这对nodetool status的输出没有影响,负载仍然存在巨大差异。nodetool cleanup命令在每个节点上大约10秒钟内完成。