cassandra – 保存的群集名称Test Cluster!=已configuration的名称
当我得到这个错误的时候,我该如何篡改一个新的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 (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表中更新它的名称来重命名群集而不删除数据(但是您必须为每个节点执行此操作)
cqlsh> UPDATE system.local SET cluster_name = 'test' where key='local'; # flush the sstables to persist the update. bash $ ./nodetool flush
最后,您需要将群集重命名为cassandra.yaml中的新名称(再次在每个节点上 )
我有与Datastax4.7企业版相同的问题。 我用上面的说明解决了它:
将群集名称更改回“testing群集”
启动群集:
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 vi /etc/dse/cassandra/cassandra.yaml cluster_name: 'Cassendra Cluster'
启动群集:
$sudo service dse start;sudo service datastax-agent start
检查安装日志:
$ cat /var/log/cassandra/output.log
对于Cassandra 3.0.5,我厌倦了Lyuben Todorov的回答,但是却错过了一个关键部分:
bash $ ./nodetool flush
应该:
bash $ ./nodetool flush system
如在这里
上述命令与UPDATE SET cluster_name
不适用于我。 我发现工作是遵循DataStax 初始化多节点集群文档中的说明:
sudo service cassandra stop sudo rm -rf /var/lib/cassandra/data/system/* sudo vi /etc/cassandra/cassandra.yaml, setup the proper parameters sudo service cassandra start nodetool status
对于一些好的群集节点设置,我发现这个博客post非常有用。
对于Cassandra 3.7,您应该使用./nodetool flush system
replace./nodetool flush system
。 否则,它将无法正常工作。
如果cassandra
没有运行,您可以擦除数据文件夹。
rm -rf /usr/lib/cassandra/data/*
这将清除具有错误群集名称的系统表。 \当你的cassandra
中正确的集群名称重新启动cassandra
,一切都将被重新生成,你应该是好的。