2015-01-15 17 views
3

我將replication_factor設置爲1,並且我有一個承載所有數據(100%,1G)的節點N1集羣。當我向羣集添加新節點N2以獲取一半數據時,我看到的是N1(50%,1G),N2(50%,0.5G)。是否cassandra使用replication_factor刪除在新節點中已複製的數據1

看起來節點N1仍然託管所有數據,即使通過一半的數據已經在N2上覆制。爲什麼在集羣中只有一個副本(replication_factor = 1)時會發生這種情況?

回答

4

您在N1節點上運行了nodetool cleanup嗎?通讀文件上Nodetool's cleanup command

使用此命令來添加新節點 集羣后刪除不需要的數據。 Cassandra不會自動從節點 中刪除數據,這些節點將其分區範圍的一部分丟失到新添加的節點。運行 在新節點啓動並運行後,在源節點和鄰近節點上運行 節點工具清理,其中 共享相同的子範圍。在添加節點後,運行此命令失敗 會導致Cassandra包含 舊數據以重新平衡該節點上的負載。

相關問題