1

我已经在 3 个节点上配置了 cassandra 3.0.9,但有时我只能使用 1 个节点。我已经从网络断开了其他 2 个节点,还从 Cassandra.yaml、rackdc 和拓扑文件中删除了这两个节点的条目。

当我检查节点工具状态时,它会显示两个关闭节点。当我尝试在 cqlsh 上执行任何查询时,它会给我以下错误:

Blockquote OperationTimedOut: errors={'127.0.0.1': '在等待模式协议时请求超时。参见 Session.execute_async 和 Cluster.max_schema_agreement_wait.'},last_host=127.0.0.1

Blockquote 警告:检测到架构版本不匹配;检查 system.local 和 system.peers 中节点的架构版本。

我该如何解决这个问题?

4

1 回答 1

2

这不是从 Cassandra 集群中删除节点的方式。事实上,你正在做的事情是非常危险的。通常,您会使用nodetool decommission. 如果您的其他两个节点仍然完好无损并且刚刚离线,我建议将它们暂时恢复在线并让退役来做它的事情。

我还将把它扔出去——除非所有键空间的 RF = 3,否则您可能会在上面执行的步骤中丢失大部分数据。Cassandra 在各个 DC 的节点之间平均分配数据。我上面提到的退役步骤重新分配了数据。

现在,如果您没有其他 2 个节点来运行 a nodetool decommission,则可能必须删除带有nodetool removenode和 的节点,在最坏的情况下,nodetool assassinate

检查这些文档以获取参考和删除节点的完整步骤:https ://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsAddingRemovingNodeTOC.html

于 2016-11-16T07:05:52.813 回答