2016-05-15 72 views
2

是否可以更改Cassandra集羣中的數據中心名稱? 如果是這樣,我該如何做到這一點?我有一個使用默認DC名稱「Cassandra」構建的Dev羣集。我想改變這一點,因爲我們將設置和測試DC之間的複製。更改Cassandra數據中心名稱

回答

5

它可能可以改變打小報告給GossipingFilePropertySnitch並指定DC名稱和cassandra-rackdc.properties文件機架名稱,這樣做,你需要重新啓動節點,在這種情況下,你會得到一個錯誤,如後:

Error: Cannot start node if snitch's data center (<new-datacentername>) differs from previous data center (<old-datacenter-name>). 
Please fix the snitch configuration, decommission and rebootstrap this node or use the flag -Dcassandra.ignore_dc=true. 

爲了避免這種需要在cassandra-env.sh文件中添加以下行並重新啓動節點。

JVM_OPTS=\"$JVM_OPTS -Dcassandra.ignore_rack=true -Dcassandra.ignore_dc=true\"' 

記住,你需要的停機時間爲羣集重新啓動您的數據中心在這種情況下,如果這樣的生產環境。

+0

有沒有辦法在不啓用ignore_rack或ignore_dc選項的情況下更改數據中心名稱?啓用這些選項是否對Cassandra集羣有任何其他負面影響? –

+0

早些時候更改數據中心/機架被允許,但自從2.1+ cassandra版本左右禁用。 這基本上是因爲如果改變了snitch配置,它可能會存在陳舊的數據,具體取決於令牌值和snitch設置,並且存在節點向客戶端報告無效/丟失數據的風險,因此是錯誤消息。 正如你所說,它關於開發集羣,它不應該是一個問題,但你可能需要小心一點。 –