【问题标题】:How to disable vnodes in an existing cassandra cluster?如何禁用现有 cassandra 集群中的 vnode?
【发布时间】:2014-09-29 16:11:11
【问题描述】:
DSE 文档说这是为了禁用 vnode,但我相信这是在设置新集群的背景下。可以在现有集群上禁用 vnode 而不丢失数据吗?有这个程序吗?
禁用虚拟节点¶
禁用虚拟节点:
在 cassandra.yaml 文件中,将 num_tokens 设置为 1。
num_tokens: 1
取消注释 initial_token 属性并将其设置为 1 或生成的令牌的值 > 对于多节点集群。
【问题讨论】:
标签:
cassandra
datastax-enterprise
【解决方案1】:
根据我从同一个问题中收到的答案,您需要创建一个禁用 vnode 的新 DC。
如果您使用 DseSimpleSnitch,它会根据节点类型自动分配 DC,您需要将所有现有和新节点的 snitch 更改为其他内容(例如 GossipingPropertyFileSnitch)。否则,您将启动的所有新节点都将简单地添加到已启用 vnode 的现有 DC。您可以在 /dse.yaml 中更改此设置
计算令牌并将其分配给新节点
- 在 cassandra.yaml 中将 auto_bootstrap 设置为 false
- 启动新节点
- 在每个新节点上运行 nodetool rebuild 。这是一个长期运行的过程,因此我建议您在 screen 实例中运行它,以避免在您关闭终端时意外终止
我可能错过了一些步骤。请务必检查此处给出的步骤:
Disabling virtual nodes in an existing Solr DC