【问题标题】:Third Cassandra node has different load第三个 Cassandra 节点有不同的负载
【发布时间】:2019-04-28 22:13:01
【问题描述】:

我们有一个 cassandra 集群,在同一数据中心中有 2 个节点,键空间“newts”的键空间复制因子为 2。如果我运行 nodetool status 我可以看到两个节点之间的负载有些相同,并且每个节点共享 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状态newts输出:

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

【问题讨论】:

  • 哪个版本的 cassandra? “nodetool status newts”的输出是什么?添加节点后是否运行“nodetool cleanup”?
  • 所有新节点都运行后,在每个先前存在的节点上运行 nodetool cleanup 以删除不再属于这些节点的密钥。在一个节点上等待清理完成,然后在下一个节点上运行 nodetool cleanup。
  • 卡桑德拉 3.11.3,cqlsh 5.0.1。 Nodetool 状态 newts 输出在 OP 中更新。我没有运行 nodetool cleanup,我认为只有在删除节点时才需要?
  • @Rocherlee 我在之前的两个现有节点上运行了 nodetool cleanup,每个节点上的命令在 10 秒内完成,并且 nodetool 状态的输出没有改变。

标签: cassandra


【解决方案1】:

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

“加载”的不同卷可能是由于在两个旧节点上添加第三个节点后未运行 nodetool cleanup - 添加节点时不会删除 sstables 中的旧数据(但稍后在清理和/或压缩):

Load - 每 90 秒更新一次文件系统下的数据量 排除所有内容后的 cassandra 数据目录 快照子目录。因为包含了所有的 SSTable 数据文件, 任何未清理的数据,例如 TTL 过期的单元格或 墓碑数据)被计算在内。

(来自https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsStatus.html

【讨论】:

  • 您好,我尝试在两个原始节点上运行nodetool cleanup,但对nodetool状态的输出没有影响,负载仍然存在巨大差异。 nodetool cleanup 命令在每个节点上大约在 10 秒内完成。
【解决方案2】:

你只需在所有 3 个节点上运行 nodetool repair 并在现有节点上一个接一个运行 nodetool cleanup 然后一个接一个地重新启动节点,似乎它可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-17
    • 2020-06-14
    • 2021-06-21
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2011-11-11
    相关资源
    最近更新 更多