架构版本与3.0.8和3.0.14

时间:2017-11-29 23:08:01

标签: cassandra datastax cassandra-3.0

我正在尝试将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]

有任何解决方法吗?

3 个答案:

答案 0 :(得分:1)

据我所知,您无法将不同版本的节点添加到现有群集中。您必须使用滚动升级来升级现有节点。查看this SO questionthis 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”这样的行。