在Cassandra中更改群集名称

时间:2016-04-20 08:02:39

标签: cassandra rename

我有一台带有2台机器的集群(centos7和cassandra 3.4),192.168.0.175和192.168.0.174。种子是192.168.0.175。

我只想更改群集名称。和平的蛋糕应该是。

我在每个群集上做过:

  • update system.local set cluster_name = 'America2' where key='local';

  • 我做了nodetool flush

  • 我使用新名称

  • 更新了cassandra.yaml
  • 重启cassandra。

当我cqlsh any时,如果我将其描述为连接到新的cluster_name America2

当我运行nodetool describecluster时,它会显示旧的群集名称America

如果我在两台机器上停止cassandra并尝试重启它们,我会在日志中找到错误的旧错误:

org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name America != configured name America2

所以....我做错了什么!?

3 个答案:

答案 0 :(得分:5)

更改群集名称之前

  1. 从群集环中删除节点

    nodetool decommission

  2. 停止节点并更改cassandra.yaml中的群集名称

  3. 清理节点

    sudo rm -rf / var / lib / cassandra / * / var / log / cassandra / *

  4. 启动cassandra node

  5. 您可以在academy.datastax.com

    找到更多信息

答案 1 :(得分:1)

好的伙计们,我做了什么:

cqlsh与每台机器和:

update system.local set cluster_name = 'canada' where key='local' ; 然后

$ nodetool flush -- system

然后我在两台机器上停止了服务。

使用新的群集名称加拿大修改了cassandra.yaml。

启动了机器,他们正在使用新的群集名称。

可以在不停止群集中的所有计算机的情况下执行这些步骤,逐个取出它们(我认为可能需要在每个节点上进行修复)。考虑先改变种子。

答案 2 :(得分:0)

这不太可能。我有同样的问题。我以非常肮脏的方式解决了这个问题。我写了一个脚本,我得到了所有列系列数据。简单地说:备份。然后我在每个节点上完成了这个:我停止了cassandra,我删除了所有cassandras数据,缓存等。(你也可以重新安装cassandra。)我创建了一个新的集群导入我的备份。我为每个节点做了这个。

相关问题