我有一台带有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。
当我cqlsh any时,如果我将其描述为连接到新的cluster_name America2
当我运行nodetool describecluster时,它会显示旧的群集名称America
如果我在两台机器上停止cassandra并尝试重启它们,我会在日志中找到错误的旧错误:
org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name America != configured name America2
所以....我做错了什么!?
答案 0 :(得分:5)
更改群集名称之前
从群集环中删除节点
nodetool decommission
停止节点并更改cassandra.yaml中的群集名称
清理节点
sudo rm -rf / var / lib / cassandra / * / var / log / cassandra / *
启动cassandra node
答案 1 :(得分:1)
好的伙计们,我做了什么:
cqlsh与每台机器和:
update system.local set cluster_name = 'canada' where key='local' ;
然后
$ nodetool flush -- system
然后我在两台机器上停止了服务。
使用新的群集名称加拿大修改了cassandra.yaml。
启动了机器,他们正在使用新的群集名称。
可以在不停止群集中的所有计算机的情况下执行这些步骤,逐个取出它们(我认为可能需要在每个节点上进行修复)。考虑先改变种子。
答案 2 :(得分:0)
这不太可能。我有同样的问题。我以非常肮脏的方式解决了这个问题。我写了一个脚本,我得到了所有列系列数据。简单地说:备份。然后我在每个节点上完成了这个:我停止了cassandra,我删除了所有cassandras数据,缓存等。(你也可以重新安装cassandra。)我创建了一个新的集群导入我的备份。我为每个节点做了这个。