##单令牌节点添加到集群
在单令牌体系结构群集中添加节点的步骤,而不是vnodes。
要向群集添加容量,分阶段引入新节点或添加整个数据中心。使用以下方法之一:
-
通过将簇大小加倍来增加容量:分配令牌时,通过加倍(或三倍或四倍)节点数来增加容量并不那么复杂。使用这种方法,现有的节点保留现有的令牌分配,并且新的节点被分配令分号(或三等分)现有的令牌范围的令牌。
-
为非统一数量的节点添加容量:使用此方法增加容量时,必须重新计算整个群集的令牌,并将新令牌分配给现有节点。
**注意:**对于DataStax Enterprise群集,可以使用OpsCenter 重新平衡群集。
###步骤
1.使用令牌生成工具根据您的扩展策略计算节点的 令牌。
2.安装Cassandra并在每个新节点上配置Cassandra。
3.如果Cassandra自动启动(Debian),请停止节点并清除数据。
4.在每个新节点上配置cassandra.yaml:
-
auto_bootstrap:如果为false,则将其设置为 true。
该选项未在默认的cassandra.yaml配置文件中列出 ,默认为true。 -
CLUSTER_NAME
-
listen_address / broadcast_address:通常留空。使用其他Cassandra节点用来连接到新节点的IP地址或主机名。
-
endpoint_snitch
-
initial_token:根据您的令牌计算设置。
**警告:**如果这个属性没有任何价值,Cassandra会为该节点分配一个随机的令牌范围,并导致严重的不平衡环。
-
seed_provider:确保新节点在现有集群中至少列出一个种子节点。
种子节点不能引导。确保新节点没有在-seeds列表中列出。不要使所有节点都设置种子节点。见节间通讯(gossip)。 -
更改新节点的所有非默认设置以匹配现有节点。使用 diff命令来查找和合并节点之间的任何差异。
5.根据不同的snitch,在每个节点的cassandra-topology.properties或 cassandra-rackdc.properties中分配数据中心和机架名称 。
6.以两分钟的时间间隔在每个新节点上启动Cassandra,并关闭consistent.rangemovement:
- 软件包安装:对于每个引导节点,将以下选项添加到 /usr/share/cassandra/cassandra-env.sh文件,然后启动Cassandra:
JVM_OPTS="$JVM_OPTS -Dcassandra.consistent.rangemovement=false
- Tarball安装:
$ bin / cassandra -Dcassandra.consistent.rangemovement = false
7.新节点完全引导后,使用nodetool move将新的initial_token值分配给每次需要一个节点的节点。
8.在所有节点都分配了新令牌之后,在群集中的每个节点上运行nodetool cleanup,并在执行下一个节点之前等待每个节点上的清除操作完成。
此步骤将删除不再属于先前存在的节点的密钥。