【发布时间】:2019-03-22 22:56:28
【问题描述】:
我有简单的 cassandra 集群、1 个种子和 2 个节点。
我理解冗余目的应该有两个节点,但我的问题是,“由于某种原因,如果我的所有种子节点都被删除,如何创建和新的种子节点并使其加入我正在运行的集群强>”。
【问题讨论】:
-
Deleted 的意思是,你删除或退役了吧?
-
您应该能够将任何节点更改为种子节点,方法是关闭它并将 IP 添加到种子列表中。那里没什么特别的。确保种子列表是一致的。真的只用于启动/引导节点。只需更改列表并重新启动就可以了。
-
如果你有最新版本的 Cassandra,你甚至不需要关闭节点来添加种子 - 有
nodetool reloadseeds命令:docs.datastax.com/en/cassandra/3.0/cassandra/tools/… -
@JimWartnick 的重点是启动我们需要种子服务器的 ip 的服务器,而这里的种子服务器被破坏了,那么如何做到这一点并获取现有的集群详细信息。
-
假设您至少有一个存活的节点(不一定是种子),只需将节点的 IP 添加到种子列表中,它就会成为种子节点。您根本不需要被破坏的节点(只要 RF > 1 并且节点同步(即没有丢失数据))。因此,如果您有一个 3 节点集群,并且节点 1 是唯一的种子。如果节点 1 被破坏/丢失,只需更改其他节点上的 cassandra.yaml 以使种子列表指向任何剩余节点,然后就完成了。要么重新启动 cassandra,要么如上所述,使用 nodetool 重新加载种子。
标签: cassandra