【问题标题】:Temporarily change multi node to single node临时将多节点更改为单节点
【发布时间】:2017-03-30 06:20:30
【问题描述】:

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

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

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

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

我该如何解决这个问题?

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我已经使用 nodetool 完成了该操作并删除了两个节点。是的,我可以理解它在生产时很危险,但我们目前处于测试阶段,所以现在还可以。感谢您的回复和建议 MarcintheCloud
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2018-05-27
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多