当我收到此错误时,我应该如何安装新的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'
我该如何解决?
答案 0 :(得分:55)
您可以通过在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中的新名称(同样在每个节点上)
答案 1 :(得分:15)
以上UPDATE SET cluster_name
命令对我不起作用。我发现工作是按照the DataStax documentation on Initializing a multiple node cluster:
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
对于一些好的集群节点设置,我发现this blog post非常有用。
答案 2 :(得分:14)
我遇到了与Datastax4.7企业版相同的问题。我用上述说明解决了这个问题:
将群集名称更改回“test 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 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
答案 3 :(得分:9)
对于Cassandra 3.0.5,我厌倦了Lyuben Todorov的答案,但它错过了一个关键部分:
bash $ ./nodetool flush
应该是:
bash $ ./nodetool flush system
,如here
答案 4 :(得分:3)
对于Cassandra 3.7,您应该将./nodetool flush
替换为./nodetool flush system
。否则它将无法工作。
答案 5 :(得分:0)
如果cassandra
未运行,您可以擦除数据文件夹。
rm -rf /usr/lib/cassandra/data/*
这将清除具有错误群集名称的系统表。 \
当您在cassandra
中使用正确的群集名称重新启动cassandra.yaml
时,所有内容都将重新生成,您应该会很好。
答案 6 :(得分:0)
对于Bitnami认证的Cassandra-3.11.5
以下是对我有用的解决方案:
sudo /opt/bitnami/ctlscript.sh stop cassandra
sudo rm -rf /opt/bitnami/cassandra/data/data/system/*
sudo /opt/bitnami/ctlscript.sh start cassandra