【问题标题】:Cassandra nodes do not startCassandra 节点不启动
【发布时间】:2013-10-12 12:43:01
【问题描述】:

我有一个 cassandra 集群,我尝试在其中添加和删除节点,以评估我在调整大小时获得的吞吐量增益。问题是,在运行添加和删除节点命令后(我也尝试使用 nodetool 进行清理),我现在无法添加 2 个节点,因为我得到了这个异常:

java.lang.IllegalStateException: unable to find sufficient sources for streaming range

cassandra bin 挂了。我不完全确定 cassandra 是如何工作的,所以有人可以提供任何详细信息吗?

谢谢

编辑:

我的集群的复制因子为 1,总共有 10 个节点(1 个种子节点、7 个工作节点和 2 个挂起节点 - 目前)

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    如果您插入数据,然后继续删除一个节点,如果您的复制因子 (RF) 太低,您将从集群中永久删除数据。为什么?因为 cassandra 没有将数据复制到任何节点上(由于 RF 较低),并且被删除的节点唯一地存储了所述数据。

    更直观地看待这个问题:

    RF = 1
    Each node stores 25% of the data
    Total dataset = [node1, node2, node3, node4]
    

    当我们移除节点 2 时,我们现在拥有总数据的 75%,因为低射频 + 移除节点 = 数据丢失。 This source 是一种简单的方法,可以在没有完整数据集之前确定可以松散多少节点。

    您将不得不删除所有数据,或重新引入具有数据的节点。我的建议是增加复制因子。

    【讨论】:

    • 我实际上尝试重新引入数据,但我仍然得到异常..对此有什么想法吗?还是非常感谢。
    • @giannis 你是怎么介绍它的?再次插入数据将不起作用,因为分配给它的范围将与原始数据不同。您必须备份相同的物理节点,因为它们存储数据并且 cassandra 按分配的 范围 跟踪数据。
    • 听起来你的令牌环中仍然存在死/删除的节点。删除它们(您可能需要“强制”选项),然后您将能够回到您的测试中。或者,将集群吹走并重新开始。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 2016-12-08
    • 2020-07-03
    • 2014-07-22
    • 1970-01-01
    • 2021-10-18
    • 2017-11-06
    相关资源
    最近更新 更多