Cassandra 将多节点临时更改为单节点

Cassandra 将多节点临时更改为单节点,cassandra,cassandra-3.0,Cassandra,Cassandra 3.0,我已经在3个节点上配置了cassandra 3.0.9,但有时我只能使用1个节点。我已经从网络上断开了其他2个节点的连接,并且从Cassandra.yaml、rackdc和拓扑文件中删除了这两个节点的条目 当我检查节点工具状态时,它会显示两个向下的节点。当我尝试在cqlsh上执行任何查询时,会出现以下错误: 大宗报价 OperationTimedOut:errors={'127.0.0.1':'请求在等待架构协议时超时。请参阅Session.execute\u async和Cluster.max

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

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

大宗报价 OperationTimedOut:errors={'127.0.0.1':'请求在等待架构协议时超时。请参阅Session.execute\u async和Cluster.max\u schema\u agreement\u wait.},last\u host=127.0.0.1

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


如何解决这个问题?

这不是从Cassandra集群中删除节点的方法。事实上,你所做的是相当危险的。通常情况下,您会使用
nodetool decommission
。如果您的其他两个节点仍然完好无损,只是处于脱机状态,我建议将它们暂时恢复联机状态,让停用来完成它的工作

我还想把这一点说出来——按照上面所做的步骤,可能会丢失大部分数据,除非所有键空间的RF=3。Cassandra在各自DC中的节点之间均匀分布数据。我上面提到的退役步骤重新分配了数据

现在,如果您没有其他2个节点来运行
nodetool解除调试
,那么您可能必须使用
nodetool removenode
删除节点,在最坏的情况下,
nodetool暗杀


查看这些文档以获取参考和删除节点的完整步骤:

我已经使用nodetool完成了这项工作,并删除了两个节点。是的,我可以理解,当它在生产中,这是危险的,但我们目前在测试阶段,所以它现在将是好的。谢谢你的回复和建议