gpt4 book ai didi

cassandra - 如何启动新节点

转载 作者:行者123 更新时间:2023-12-01 02:43:48 26 4
gpt4 key购买 nike

这是 High Availability in Cassandra 的后续问题

1) 假设我们有三个节点 N1、N2 和 N3,我有 RF =3、WC = 3 和 RC = 1,那么这意味着我无法处理写入时的任何节点故障。

2)假设如果 N3(假设它保存数据)出现故障,那么现在我们将无法写入一致性为“3”的数据。

问题1:现在如果我启动一个新的节点N4并附加到集群,我仍然无法以一致性3写入集群,那么如何使节点N4充当第三个节点?

问题 2:我的意思是,假设我们有 7 个节点集群,RF = 3,那么如果保存副本的任何节点出现故障,是否有办法使集群中现有的其他节点充当保存分区的节点?

最佳答案

查看文档:

https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsReplaceNode.html

您想要替换场景中的死节点。应将 N3 从环中取出并用 N4 代替。

按照该说明一步步操作应该很容易。至关重要的是,如果您通过包管理安装节点,请在配置新节点之前停止它,并清除其中的所有现有数据、缓存和提交日志(通常在 /var/lib/cassandra/* 下找到)。

还可以使用nodetool removenode从环中删除死节点。如此处所述http://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsRemoveNode.html在这里https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsRemoveNode.html - 这将从集群中删除节点(并且您应该确保在清除其数据之前它不会再回来)。

请记住,它只会从环中删除死节点并将 token 范围分配给剩余节点,但不会自动发生流式传输。你需要朗姆酒nodetool repair删除死节点后。

如果您想删除事件节点,您可以使用 nodetool decommission - 但如上所述,确保节点不会通过清除其数据来重新进入集群。

更新:

Cassandra 中的节点在内部并未以 N1、N2 等方式“命名”。节点有一个 uuid,并且它们拥有它们负责的所谓 token 范围。

如果某个节点发生故障 - 如果可能的话,只需修复它,然后将其重新联机以加入您的集群 - 如果这花费的时间少于默认的 3 小时,那么就可以了。否则运行nodetool repair .

但是如果节点完全“丢失”并且永远不会回来,请运行 nodetool removenode在那个死节点上。这要求 cassandra 将死亡节点负责的 token 范围分配给其余节点。之后运行nodetool repair因此节点将传输丢失的数据。之后,您的集群将减少 1 个节点,因此将是 6 个节点。

关于cassandra - 如何启动新节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48059762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com