java - 在现有的 Cassandra 集群中添加节点

标签 java cassandra

我现在创建了一个有 2 个节点的集群。我想向它添加另一个节点,以便它成为一个 3 节点集群。我已经阅读了 datastax 的文档。我想知道,当我添加第3个节点时,是否需要更改前2个节点的token值,是否需要重新启动集群?
另外我想知道除了基本设置(监听地址,rpc地址,token,seeds)之外,我是否需要更改其他任何内容。

最佳答案

如果您在不更改 token 的情况下向 2 节点集群添加一个新节点,您最终将得到一个节点拥有 50% 的 key ,而 2 个节点各拥有 25%。相反,当您将新节点联机时,您应该指定初始 token (在 cassandra.yaml 中)。然后,您应该使用 nodetool move 移动节点 2 上的 token ,然后使用 nodetool cleanup 删除任何不需要的数据。

您应该使用以下标记:

Node 1: 0 -- should already be set
Node 2: 56713727820156407428984779325531226112 -- will require the move
Node 3: 113427455640312814857969558651062452224 -- will be set using initial token

关于java - 在现有的 Cassandra 集群中添加节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719348/

相关文章:

java - Android 流媒体 MSMPEG-4 V3 视频

java - 更高级别的错误处理

hadoop - 如何将数据从 Cassandra 导入到 Hadoop 文件系统

cassandra - 如何归档和清除 Cassandra 数据

cassandra - 在 Windows 中清除 Cassandra cqlsh 控制台

java - 如果这不是线程安全的,我可以通过哪些方式使其成为线程安全的?

java - mapFragment.getMapAsync 中的 NullPointerException

java - EasyMock 和测试 protected 方法

linux - 安装 dsc21 时出错 : "dsc21 : Depends: cassandra (= 2.1.8) but 2.2.0 is to be installed"

java - Cassandra 的节俭运输异常(exception)