【问题标题】:Upgrading Cassandra from 3.0.14 to 3.11.2将 Cassandra 从 3.0.14 升级到 3.11.2
【发布时间】:2018-08-20 10:29:55
【问题描述】:

我在 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 - 集群中至少有一个 3.0 节点 - 将存储和 宣布兼容的架构版本

我不明白为什么当我集群中仅有的 2 个节点现在运行 3.11.2 时,仍然有一个 3.0 节点。

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

节点工具版本

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

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

【问题讨论】:

  • 你知道同一个集群中的所有节点必须有相同的版本吗!
  • 并且集群中的所有节点都具有相同的版本。我不明白你为什么要问?

标签: cassandra cassandra-3.0


【解决方案1】:

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

所以发生的情况是,当您使用 3.11 启动节点时,它将首先更新有关自身的信息。它会注意到自己已经更新到3.11,但是集群中还有其他3.0的节点。现在它将将此信息发送到所有其他节点,通知它们本身已更新到 3.11。

【讨论】:

  • 实际上,我并没有同时停止两个节点。首先,我只停止其中一个,升级它,打开它,然后停止另一个节点并做同样的事情。
  • 好吧,那么您收到此消息的原因就更加明显了。我假设你只在升级的第一个节点上得到这个。
  • 我记得在两个节点中都观察到了它。我会重新检查并通知您。
  • 我检查了,“集群中至少有一个 3.0 节点 - 将存储并宣布兼容的架构版本”语句出现在两个节点的系统日志中!
  • @VishalSharma 该选择语句应该显示所有其他节点的信息,而不是它本身。它将有关自身的信息保存在 system.local 中。我希望您查看 system.peers 表以检查其他节点的版本。我希望这是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 2017-07-23
相关资源
最近更新 更多