2012-12-11 96 views
1

我正在配置位於三臺不同機器中的三節點Cassandra集羣。我可以互相ping通,也可以ping通。 我在這三臺機器上安裝了cassandra集羣。說他們是A,B,C,其中A是種子。這裏,C成功加入種子(A),並打印加入日誌。當我通過A分析集羣時,我可以看到C已經加入,擁有66.7%的所有權。 'A'擁有33.3%的所有權。 (我已經平分了令牌。) 但是節點B沒有加入羣集。沒有打印錯誤。除了listen_address和rpc_address之外,B和C的配置類似。我驗證了這兩者之間的配置,它們是相似的。One Cassandra節點未能加入Cassandra集羣

這可能是網絡問題,但我不確定是否是這種情況。沒有問題得到打印。關於我可以在這裏嘗試的任何建議?這似乎很奇怪。可能是由於某些端口問題?

+1

B上的'nodetool -h localhost ring'輸出是什麼? – Wildfire

回答

0

你在卡桑德拉的版本是什麼?

嘗試關閉每個節點並逐個提出。 Cassandra在1.1.6之前(我認爲它是那個版本)有一個問題,即節點有時不能重新加入該環。

其次,確保每個節點都配置了相同的集羣名稱和相同的一組種子節點。

+1

我們正在使用Cassandra 1.1.3。無論如何,我們找到了解決方案,結果是網絡接口的問題。每臺機器都有兩個網絡接口。即。一個在192.168.x範圍內,另一個在10.x範圍內。出現問題的機器竟然使用10.x IP作爲rpc地址。 (我們有一個域到IP映射) 所以,改變IP修復了這個問題。將使用0.0.0.0作爲rpc_address在這裏可能的解決方案? –

+0

是的 - 但標準的建議是將它們放在不同的接口上,以便節點之間的八卦不會受到來自客戶端的大量流量的影響。 – Sarge