将 Cassandra 从 3.0.14 升级到 3.11.2

Upgrading Cassandra from 3.0.14 to 3.11.2

我在 3.0.14 上有 4 个节点,我不得不将其中 2 个升级到 3.11.2 并停用另外 2 个。首先,我一个接一个地停用了 2 个节点。之后,我在其他 2 个节点上停止了 cassandra 3.0.14,并交替安装了 3.11.2 版本。但是,在两个节点的系统日志中,我看到以下内容:

INFO [GossipStage:1] 2018-03-12 16:28:50,621 Gossiper.java:1193 - There is at least one 3.0 node in the cluster - will store and announce compatible schema version

我不明白为什么它说仍然有一个 3.0 节点,而我的集群中现在只有 2 个节点 运行 3.11.2。

我还在两个节点上使用了以下命令来检查版本

nodetool version

命令在这两种情况下都返回了 "ReleaseVersion: 3.11.2"。

PS:我添加了 cassandra-3.0 作为这个问题的标签,因为我找不到 cassandra-3.1。

这只是一条信息消息,并不意味着有任何问题。所有 Cassandra 节点都保留彼此的信息,例如令牌范围、IP、版本等。由于您同时停止了两个 Cassandra 节点,这意味着它们都认为另一个节点仍在 Cassandra 3.0 上,直到它们了解到其他情况。

所以当你用 3.11 启动一个节点时,它会首先更新关于它自己的信息。它会注意到自己已更新为 3.11,但集群中还有其他节点为 3.0。现在它会将此信息发送到所有其他节点,通知它们自己已更新到 3.11。