概述
##将节点添加到现有集群
虚拟节点(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之前,等待清理完成。
清理可以安全地推迟使用时间。
最后
以上就是俊秀戒指为你收集整理的一、将节点添加到现有集群的全部内容,希望文章能够帮你解决一、将节点添加到现有集群所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复