2011-03-13 30 views
1

我已經安裝了Cassandra,並在兩臺機器上運行。我已按照說明通過配置storage-conf.xml文件將它們連接起來。如何測試storage-conf是否正在Cassandra 0.7.3中加載?

這兩臺機器都能很好地響應節儉和命令行cassandra。

這是tutorial I used to setup the storage-conf.xml files

該教程說如果我運行netstat,我不應該在我的種子節點上看到Cassandra綁定到127.0.0.1。我應該看到它綁定到我在storage-conf.xml文件中配置的內部IP。

我重新啓動了服務器並重新啓動了cassandra。不過,我看到正確的內部IP地址的本地主機地址insead。

難道我的.yaml文件覆蓋了storage-conf.xml文件嗎?如果是這樣,我該如何刪除.yaml中的相應內容?或者我如何告訴Cassandra查找我的storage-conf.xml文件?

我試過的一些東西:重命名cassandra.yaml文件。發生什麼事是cassandra不會加載。如果我重命名storage-conf.xml,cassandra會加載。

當我安裝Cassandra時,它沒有帶有storage-conf.xml文件。我不得不從apache維基上取下它。

回答

1

在現代cassandra版本中未使用xml。 yaml是真相的來源,轉換器旨在作爲人員升級的一次性事物。

1

我想通了。 Cassandra未加載storage-conf.xml,它正在加載cassandra.yaml。

當我運行bin/cassandra -f時,我發現它實際上是第一行。

我用的bin/config中,轉換工具,並與轉換工具的輸出替換cassandra.yaml解決了這一問題:

cd [path to cassandra]/conf 
mv cassandra.yaml __old_cassandra.yaml 
../bin/config-converter storage-conf.xml cassandra.yaml 

然後我發現卡桑德拉將無法啓動。我收到此錯誤:

ERROR 05:58:03,117 Fatal exception during initialization 
org.apache.cassandra.config.ConfigurationException: Saved cluster name Test Cluster != configured name 

我固定的,這是通過將其中卡桑德拉存儲這是系統數據的文件夾的方式: cd /var/lib/cassandra/data/system/ 和刪除內容 rm -f *.*

然後,卡桑德拉開始罰款。我在第二個節點上重複了這些步驟。有效。

命令 bin/nodetool -h localhost ring

顯示,我有兩個節點啓動和運行。成功。

現在,我唯一的問題是 - 前進 - 當我想修改storage-conf.xml時,我將不得不將其複製到yaml?或者Cassandra會自動加載我的更改?

相關問題