2013-07-21 63 views
0

我正在嘗試將2節點Cassandra集羣擴展爲具有4個Amazon EC2實例的4節點集羣。我創建了四個節點,並在cassandra.yaml文件中進行了以下更改。cassandra中的nodetool狀態給出節點的先前IP

listen_address = 10.30.143.145 
seeds = 10.30.143.145,10.159.58.234,10.170.31.252,10.158.52.84 
endpoint_snitch: Ec2snitch 
num_tokens: 256 

我複製了所有4個節點,這些變化。按照此過程,我已從單節點羣集擴展到雙節點羣集。但是,在配置4個節點的集羣后,當我先做節點上的./nodetool狀態,我得到下面的輸出:

[email protected]:~/VIQ-Cloud/software/apache-cassandra-1.2.5/bin$ ./nodetool status 
Datacenter: us-east 
=================== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address  Load  Tokens Owns Host ID        Rack 
UN 10.30.143.145 927.14 KB 256  16.1% 34d0424a-fe07-4047-a2a5-f45b9a0049d6 1a 
UN 10.159.58.234 135.2 KB 256  15.7% 00308009-8755-4bce-906f-4eda53a31fc6 1a 
UN 10.170.31.252 20.94 GB 256  20.9% a815f0de-64db-418c-97a3-9aa7be280280 1a 
UN 10.158.52.84 311.33 KB 256  15.0% fc634f65-3cf3-4e24-a9a3-456adbd174e0 1a 
Datacenter: UNKNOWN-DC 
====================== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address  Load  Tokens Owns Host ID        Rack 
DN 10.170.22.214 ?   256  16.6% 253ee376-c49d-47a1-a321-4f155870c122 UNKNOWN-RACK 
DN 10.31.131.35 ?   256  15.7% e94c0cb1-9635-42c9-8982-450271f7da1c UNKNOWN-RACK 

顯示爲DN的兩個節點的地址是以前的私有IP的說的的其他EC2節點(每次重新啓動EC2實例都會更改專用IP)。
但其他3個節點正在爲我提供適當的nodetool狀態結果。我想知道cassandra在哪裏選擇以前的IP,因爲他們我沒有在cassandra.yaml文件中提到它們。

我跟着instructions here添加新節點。 請告知爲什麼會發生這種情況。

+0

不確定舊IP問題。但是,當您將節點添加到集羣時,請勿在引導它們之前使它們成爲種子節點。這就是爲什麼當他們開始時沒有數據發送給他們的原因。 (一個節點20GB其他節點100kb)如果一個節點是一個種子節點,它將不會在第一次啓動時通過Cassandra引導階段,因此它不會獲取它的數據。 – Zanson

+0

@Zanson感謝您的新見解。我一直在想,爲什麼數據集中在一個節點上。這很清楚。但我認爲auto_booststrap在cassandra 1.2中默認啓用..是不是這樣.. – eldho

+0

是。但是有一些東西會導致它關閉。因爲每次重新啓動節點時都不希望節點進行引導。因此,作爲種子節點,已經擁有數據,已經擁有令牌,任何這些事情都會禁用自動引導。 – Zanson

回答

0

如果你還沒有弄明白這一點,我想答案可能是你需要確保你在新節點上的cassandra.yaml中使用了Ec2或Ec2Multiregion snitch。事實上,他們被置於「UNKNOWN-DC」意味着現有節點不知道將其置入哪個DC。