一、将节点添加到现有集群

##将节点添加到现有集群

虚拟节点(vnodes)大大简化了将节点添加到现有集群的过程:

  • 计算令牌并将其分配给每个节点不再需要。

  • 重新平衡集群不再是必要的,因为加入集群的节点承担了偶数部分数据的责任。

有关vnodes如何工作的详细说明,请参阅虚拟节点。

**注意:**如果您不使用vnodes,请参阅将单令牌节点添加到群集。

###步骤

确保在群集中的所有节点上使用相同版本的Cassandra。请参阅安装Apache Cassandra 3.0的早期版本。

1.在新节点上安装Cassandra,但不要启动Cassandra。如果您在Debian上的Cassandra安装自动启动,您必须停止节点并清除数据。

2.根据群集中使用的snitch,设置cassandra-topology.properties 或cassandra-rackdc.properties文件中的属性:

  • PropertyFileSnitch使用 cassandra-topology.properties文件。

  • GossipingPropertyFileSnitch,Ec2Snitch,Ec2MultiRegionSnitch和GoogleCloudSnitch使用 cassandra-rackdc.properties文件。

3.在cassandra.yaml文件中设置以下属性 :

auto_bootstrap

如果此选项已设置为false,则必须将其设置为true。该选项未在默认的cassandra.yaml配置文件中列出,默认为true。

CLUSTER_NAME

新节点正在加入的群集的名称。

listen_address / broadcast_address

通常可以留空。否则,使用其他Cassandra节点用来连接到新节点的IP地址或主机名。

endpoint_snitch

告密者Cassandra用来定位节点和路由请求。

num_tokens

要分配给节点的vnode数量。使用与数据中心中其他节点上设置的相同数量的令牌。令牌范围按比例分配,如果硬件能力不同,则为容量更高,性能更好的系统分配更多的令牌范围。

allocate_tokens_for_local_replication_factor

指定数据中心密钥空间的复制因子(RF)。如果您打算在添加节点后增加RF,则使用(新)更高的值。当射频在密钥空间之间变化并且您添加单个节点时,请使用最高的射频值。添加多个节点时,请在大部分数据密集型密钥空间RF之间交替使用。例如,在密钥空间cyclingRF = 3,密钥空间 hockeyRF = 2,密钥空间 basketballRF = 1的数据中心中,将要添加到的第一个节点设置为3,将第二个节点设置为2。

seed_provider

确保新节点在现有集群中至少列出一个节点。该-seeds列表确定哪些节点的新节点应联系,以了解集群,建立八卦过程。

**注意:**种子节点不能引导。确保新节点没有在-seeds列表中列出。 不要使所有节点种子节点。

其他非默认设置

在cassandra.yaml文件和 cassandra-topology.properties或 cassandra-rackdc.properties文件中更改对现有集群所做的任何其他非默认设置。使用 diff命令查找和合并现有节点和新节点之间的差异。

4.启动引导程序节点。

5.使用nodetool status来验证节点是否已完全引导,并且所有其他节点都处于运行状态(UN)而不处于任何其他状态。

6.在所有新节点运行之后,对每个先前存在的节点运行nodetool cleanup,以删除不再属于这些节点的密钥。在下一个节点上运行nodetool cleanup之前,等待清理完成。

清理可以安全地推迟使用时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值