将节点添加到 Cassandra 集群

Posted

技术标签:

【中文标题】将节点添加到 Cassandra 集群【英文标题】:Adding nodes to Cassandra Cluster 【发布时间】:2015-11-04 01:21:36 【问题描述】:

我有一个 1 个节点 - 1 个集群 Cassandra 在我的本地计算机上运行。当我简单地将第二个节点添加到同一个集群时,我想看看 Cassandra 是如何扩展的。我添加的第二个节点也将在我的本地机器上运行。

我一直在尝试查找很多方法来做到这一点,但找不到任何方法。有什么简单的方法可以将第二个 Cassandra 实例添加到集群中?

【问题讨论】:

也许最简单的(虽然速度很慢)是拥有一个具有共享 IP 地址的 VPS,以便您可以连接到它/从它连接。我这样做是为了测试很多节点,但是当你用这种方式有太多时,硬盘驱动器真的很慢。 【参考方案1】:

添加第二个节点的行为称为引导。程序很简单:

确保集群名称在 cassandra.yaml 中匹配

使用 yaml 中的种子设置将新(加入)节点指向集群

启动cassandra,它会加入。

This is described in detail online,但查看它的最简单方法之一是使用 ccm,这是许多 cassandra 开发人员用来在本地计算机上设置假集群的工具。

目前(直到 3.9 的所有版本),Cassandra 的唯一 ID 是一个 IP - 每个 IP 只能有一个实例。如果每台计算机需要多个 cassandra 实例,则需要使用多个 IP。

【讨论】:

每个节点使用一台计算机是“直截了当”的。 那么,在旧节点中我没有什么可做的吗? 您应该在新节点完成加入后在旧节点上运行“nodetool cleanup”(在环中显示 UP/NORMAL)。这将删除以前拥有但不再由该实例拥有的数据。

以上是关于将节点添加到 Cassandra 集群的主要内容,如果未能解决你的问题,请参考以下文章

将节点添加到现有 Cassandra 集群

如何将第三个节点添加到 2 节点 Cassandra 集群?

将节点添加到 Cassandra 集群会导致现有节点上的 CPU 过载

将单个令牌节点添加到现有的 datastax cassandra 集群和数据传输不起作用

将数据从单节点 cassandra 集群迁移到另一个单节点 cassandra 集群

向cassandra添加节点时,请等待压缩?