cassandra-已保存的群集名称测试群集!=配置名称
当我遇到这个错误时,我应该如何bot一个新的Cassandra节点cassandra-已保存的群集名称测试群集!=配置名称,cassandra,Cassandra,当我遇到这个错误时,我应该如何bot一个新的Cassandra节点 INFO [SSTableBatchOpen:1] 2014-02-25 01:51:17,132 SSTableReader.java (line 223) Opening /var/lib/cassandra/data/system/local/system-local-jb-5 (5725 bytes) ERROR [main] 2014-02-25 01:51:17,377 CassandraDaemon.java (l
INFO [SSTableBatchOpen:1] 2014-02-25 01:51:17,132 SSTableReader.java (line 223) Opening /var/lib/cassandra/data/system/local/system-local-jb-5 (5725 bytes)
ERROR [main] 2014-02-25 01:51:17,377 CassandraDaemon.java (line 237) Fatal exception during initialization
org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name Test Cluster != configured name thisisstupid
at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:542)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:233)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552)
cassandra.yaml文件中的集群名称为:
cluster_name: 'thisisstupid'
如何解析?您可以通过更新system.local表中的集群名称来重命名集群,而无需删除数据(但您必须对每个节点执行此操作)
最后,您需要在cassandra.yaml中将集群重命名为新名称(在每个节点上再次)我对Datastax4.7 enterprise edition也有同样的问题。我按照上述指示解决了这个问题: 将群集名称更改回“测试群集” 启动群集:
cqlsh> UPDATE system.local SET cluster_name = 'Cassendra Cluster' where key='local';
cqlsh> exit;
$ nodetool flush system
$sudo service dse stop;sudo service datastax-agent stop
$sudo service dse start;sudo service datastax-agent start
停止群集:
cqlsh> UPDATE system.local SET cluster_name = 'Cassendra Cluster' where key='local';
cqlsh> exit;
$ nodetool flush system
$sudo service dse stop;sudo service datastax-agent stop
$sudo service dse start;sudo service datastax-agent start
编辑文件:
$ sudo vi /etc/dse/cassandra/cassandra.yaml
cluster_name: 'Cassendra Cluster'
启动群集:
cqlsh> UPDATE system.local SET cluster_name = 'Cassendra Cluster' where key='local';
cqlsh> exit;
$ nodetool flush system
$sudo service dse stop;sudo service datastax-agent stop
$sudo service dse start;sudo service datastax-agent start
检查安装日志:
$ cat /var/log/cassandra/output.log
上述带有
更新集群集\u name
的命令不适用于我。我发现工作需要遵循以下说明:
对于一些好的群集节点设置,我发现非常有用。对于Cassandra 3.0.5,我厌倦了答案,但它缺少一个关键部分:
bash $ ./nodetool flush
应该是:
bash $ ./nodetool flush system
与Cassandra 3.7的一样,您应该用
/nodetool flush系统替换/nodetool flush
。否则它将无法工作。如果cassandra
未运行,则可以擦除数据文件夹
rm -rf /usr/lib/cassandra/data/*
这将清除具有错误群集名称的系统表\
当您在cassandra.yaml中使用正确的集群名称重新启动cassandra
时,一切都将重新生成,您应该很好 针对Bitnami认证的卡桑德拉-3.11.5
以下是对我有效的解决方案:
停止卡桑德拉服务
删除系统数据
启动Cassandra服务
这些目录是什么?目录在/var/lib/cassandra/commitlog/var/lib/cassandra/data中,所以…删除或刷新目录的内容?@Tampa del它们,但这也会删除所有数据。您基本上正在完全擦除集群。我认为bash$./nodetool flush
应该是bash$./nodetool flush system
。有关详细信息,请参见如果Cassandra由于声明的错误而无法启动,那么我们显然无法使用cqlsh方法。然后,我们需要删除系统密钥空间中的文件并重新启动服务。这帮助我重置了群集名称,以便我可以跟踪链接。删除所有数据确实可以解决问题,但我不确定这是否是最好的建议。我认为否决此答案是不公平的。在部署过程的早期,刷新数据可能比仅通过cqlsh更改集群而必须在其以前的名称上恢复集群要容易得多。