cassandra是否使用replication_factor 1删除在新节点上复制的数据

时间:2015-01-15 19:51:19

标签: cassandra

我将replication_factor设置为1,并且我有一个节点N1群集托管所有数据(100%,1G)。当我向集群添加新节点N2以获取一半数据时,我看到的是N1(50%,1G),N2(50%,0.5G)。

看起来节点N1仍然托管所有数据,即使一半数据已经在N2处复制。为什么在集群中只有一个副本(replication_factor = 1)时会发生这种情况?

1 个答案:

答案 0 :(得分:4)

您是否在N1节点上运行nodetool cleanup了?阅读Nodetool's cleanup command上的文档:

  

使用此命令可在添加新节点后删除不需要的数据   集群。 Cassandra不会自动从节点中删除数据   将部分分区范围丢失到新添加的节点。跑   nodetool清理源节点和相邻节点上的   在新节点启动并运行后共享相同的子范围。失败   在添加节点后运行此命令会导致Cassandra包含   旧数据重新平衡该节点上的负载。