2014-02-25 66 views
37

當我收到此錯誤時,我該如何構建新的Cassandra節點?cassandra - 已保存的羣集名稱Test Cluster!=已配置名稱

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' 

請問該如何解決?

回答

49

可以重命名集羣,而不通過更新它在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中的新名稱(每個節點上的仍爲

+0

這些是什麼? – Tampa

+0

檢查'cassandra.yaml'中的'data_file_directories','commitlog_directory'(和2.1 flush_directory)設置 –

+1

dirs位於/ var/lib/cassandra/commitlog /var/lib/cassandra/data中....刪除或沖洗dirs的內容? – Tampa

11

我與Datastax4.7企業版有相同的問題。

更改羣集名稱改回 「測試集羣」

啓動集羣:

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 
+1

如果您退出而不退出;它不會工作.. –

10

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是非常有用的。

+0

這幫助我重置羣集名稱,以便我可以按照https://support.datastax.com/hc/en-us/articles/205289825-更改羣集名稱 –

+0

鏈接已死 – Hasson

9

對於卡桑德拉3.0.5,我累了,答案由Lyuben Todorov但它缺少的重要組成部分:

bash $ ./nodetool flush 

應該是:

bash $ ./nodetool flush system 

here

3

對於卡桑德拉3.7你應該用./nodetool flush system替換./nodetool flush。否則它將無法工作。

-2

如果cassandra未運行,則可以擦除數據文件夾。

rm -rf /usr/lib/cassandra/data/* 

這將清除具有錯誤羣集名稱的系統表。\ 當您在cassandra.yaml中使用正確的羣集名稱重新啓動cassandra時,所有事情都會重新生成,您應該很好。

+2

刪除所有數據確實解決了問題,但我不確定這是建議人們的最佳選擇。 – Jacob

相關問題