如何在 cassandra 中将环从集群中分离出来

Posted

技术标签:

【中文标题】如何在 cassandra 中将环从集群中分离出来【英文标题】:How to separate ring from cluster in cassandra 【发布时间】:2014-02-10 02:51:24 【问题描述】:

我们有一个 cassandra DSE 集群,其中 10 个节点用于 cassandra 环,10 个节点用于 hadoop 环。现在应用程序将数据写入 cassandra ring,cassandra 会将数据复制到 hadoop ring。

我们想将两个环分开,使它们成为两个不同的集群,应用程序同时将数据写入两个集群。

如何分离集群?这可能吗? 我们在集群中有大约 600GB 的数据,我们无法删除它。

【问题讨论】:

【参考方案1】:

您应该先对此进行测试,但这个基本程序应该可以工作。如果您有计数器,则需要进行一些调整。

    使用 LOCAL_QUORUM 将您的应用程序写入两个 DC。 对整个集群运行修复。这是为了确保每个 DC 都有一份数据副本。 隔离集群,使两个 DC 无法相互通信,可能使用了防火墙。 假设您的 DC 是 DC1 和 DC2,请将您的复制因子更改为 DC1 上的 DC2:0 和 DC2 上的 DC1:0。 在每个 DC 上,为另一个 DC 中的每个节点运行“nodetool removenode”。这只会从环中删除 DOWN 节点,但不会对数据产生任何影响,因为其他节点的复制因子为零。

这应该可以实现零数据丢失。

【讨论】:

谢谢你,理查德。我会测试它。

以上是关于如何在 cassandra 中将环从集群中分离出来的主要内容,如果未能解决你的问题,请参考以下文章

在 Cassandra 中将数据从一个集群传输到另一个集群

如何在不发出单独请求的情况下将元数据和音轨从广播流中分离出来

将 UITableView 委托和数据源从 tableViewController 中分离出来

如何在play framework 1.3中分离application.conf以增加conf文件

在 Django 中分离表单输入和模型验证?

在 3 节点 Cassandra 集群中将复制因子设置为 2;但数据仍在插入时被复制到所有 3 个节点