我有一个cassandra集群,我尝试添加和删除它的节点,以评估调整大小时的吞吐量增益 . 问题是在运行添加和删除节点命令后(我也尝试使用nodetool进行清理),我现在无法添加2个节点,因为我遇到了这个异常:
java.lang.IllegalStateException: unable to find sufficient sources for streaming range
和cassandra bin挂起..我不完全确定cassandra是如何工作的,所以任何人都可以提供任何细节吗?
谢谢
编辑:
我的群集的复制因子为1,总共有10个节点(1个种子节点,7个工作节点和2个挂起节点 - 暂时)
1 回答
如果您插入数据,然后继续删除节点,如果复制因子(RF)太低,则从群集中删除数据 . 为什么?因为cassandra没有将数据复制到任何节点上(由于RF较低),并且被移除的节点存储了所述数据 .
更直观地看待问题:
当我们删除节点2时,我们现在有75%的总数据,因为低rf删除节点=数据丢失 . This source是一种简单的方法,可以在没有完整数据集之前调整可以节省多少节点 .
您将不得不删除所有数据,或重新引入具有该数据的节点 . 我的建议是增加复制因子 .