2014-10-02 87 views
2

我們的羣集不平衡,大部分數據都在一個節點中。現在,由於空間不足,現在大部分數據的節點已經死亡。如何在節點關閉的情況下平衡cassandra羣集

如何使節點僅帶準備就緒模式並重新平衡羣集?

我們使用的虛擬節點和DSE 4.0.3

+0

你在死亡節點上看到了什麼錯誤?失去空間會導致死亡? – 2014-10-03 15:50:06

+0

你的複製因子和簇大小是多少?你知道爲什麼集羣首先失去平衡嗎? – 2014-10-03 15:50:39

回答

0

沒有爲卡桑德拉沒有明確的只讀模式。因此,您可能需要臨時向節點添加一些磁盤空間以使其聯機,然後重新平衡羣集。

如果這不是一個選項,那麼刪除快照有時可以爲您提供足夠的空間。如果以前未運行,則運行nodetool清理也可以提供幫助。

如果您使用的是vnodes,那麼常見問題是您是否將舊式令牌節點轉換爲vnodes。該節點將只抓取一個偶數範圍的映射到其原始範圍的令牌。如果羣集中的其他節點具有隨機生成的令牌,則會導致它們之間巨大的不平衡。停用節點然後重新添加它應該可以解決問題。

nodetool環的輸出會告訴我們是否發生了這種情況。實際上,機會是一個分解,重新添加將是任何情況下的解決方案。

+0

nodetool排出將停止接受寫入並沖洗所有列族。節點仍然保持。 – phact 2014-11-05 19:54:30

0

使用nodetool drain停止在某個節點上接收寫入。

相關問題