我正在尝试将cassandra版本从3.0.8升级到3.0.14。我将3.0.14版本的新节点添加到3.0.8。我看到节点和新节点之间的架构不一致并不会传输任何数据。
我在看:https://issues.apache.org/jira/browse/CASSANDRA-13559,这是否意味着,我将无法添加版本高于3.0.13的节点?
这是我在nodetool describecluster输出中看到的内容
$ nodetool describecluster
Cluster Information:
Name: production
Snitch: org.apache.cassandra.locator.DynamicEndpointSnitch
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Schema versions:
45ad6427-30a8-3381-9e2c-266b446c6ea7: [192.168.1.2, 192.168.1.3, 192.168.1.4]
c2a2bb4f-7d31-3fb8-a216-00b41a643650: [10.10.1.10]
有任何解决方法吗?
答案 0 :(得分:1)
据我所知,您无法将不同版本的节点添加到现有群集中。您必须使用滚动升级来升级现有节点。查看this SO question或this doc,其中详细说明了滚动升级的步骤。
答案 1 :(得分:0)
你运行nodetool upgradesstables了吗?
答案 2 :(得分:0)
这有点迟,但我以前也遇到过。
有关特定于3.0.14的发行说明,请参见https://github.com/apache/cassandra/blob/cassandra-3.0/NEWS.txt#L166。
您需要一个临时标志:3.0.14节点上的-Dcassandra.force_3_0_protocol_version=true
来启用这两个版本之间的通信。闲话不兼容会导致在引导过程中无法拉出架构。升级整个群集后,您应该删除此标志,然后再次滚动重启
我猜想由于这种不兼容性,在调试日志中您会发现像“ shouldPullSchema返回false”这样的行。