将 Cassandra 节点添加到集群时,请务必考虑以下两个要点:
- Cassandra 环中节点的现有位置不应更改,以最大限度地减少流式传输并维持平衡的环。
- 所有数据中心中的节点数量必须保持一致。
为确保第一个目标,在每次添加新节点时,务必要将 Cassandra 集群中的节点数量加倍。
例如,如果您开始采用一个分布在两个数据中心的标准 12 节点集群安装拓扑,则总共会有 6 个 Cassandra 节点,每个数据中心有 3 个。要扩展此集群,您应向每个数据中心添加 3 个节点,将总节点数增加到 12(每个数据中心有 6 个节点)。如果需要进一步扩展,您应为每个数据中心额外添加 6 个节点,使总节点数为 24(每个数据中心 12 个节点)。
本文档介绍如何将三个新的 Cassandra 节点添加到用于安装私有云的现有 Edge。可以遵循相同的步骤来添加其他节点。在扩展集群时,请务必确保节点数量加倍。
如需查看 Cassandra 节点的系统要求列表,请参阅安装要求部分。
现有 Edge 配置
生产系统支持的所有 Edge 拓扑都指定使用三个 Cassandra
节点。这三个节点在配置文件中的 CASS_HOSTS
属性中指定
如下所示:
IP1=10.10.0.1 IP2=10.10.0.2 IP3=10.10.0.3 HOSTIP=$(hostname -i) ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 USE_LDAP_REMOTE_HOST=n LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd
请注意,REGION
属性将地区名称指定为“dc-1”。你需要
在添加新的 Cassandra 节点时提供相关信息。
修改配置文件以添加 三个新的 Cassandra 节点
在此示例中,三个新的 Cassandra 节点位于以下 IP 地址:
- 10.10.0.14
- 10.10.0.15
- 10.10.0.16
您必须先更新 Edge 配置文件才能添加新节点:
IP1=10.10.0.1 IP2=10.10.0.2 IP3=10.10.0.3 # Add the new node IP addresses. IP14=10.10.0.14 IP15=10.10.0.15 IP16=10.10.0.16 HOSTIP=$(hostname -i) ADMIN_EMAIL=opdk@google.com ... # Update CASS_HOSTS to add each new node after an existing nodes. # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1"
这样可以确保现有节点保留其初始令牌设置和初始令牌 介于现有节点的令牌值之间。
配置 Edge
修改配置文件后,您必须执行以下操作:
- 重新配置现有的 Cassandra 节点
- 在新节点上安装 Cassandra
- 重新配置管理服务器
重新配置现有的 Cassandra 节点
在现有 Cassandra 节点上:
- 使用“-p c”重新运行 setup.sh配置文件和新的配置文件:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
在新节点上安装 Cassandra
按照以下步骤在新节点上安装 Cassandra。
在每个新的 Cassandra 节点上:
- 在三个节点上安装 Cassandra:
<ph type="x-smartling-placeholder">
- </ph>
- 在以下设备上安装“
apigee-setup
”: 如安装 Edge apigee-setup 实用程序。 - 使用更新后的配置文件在第一个节点上安装 Cassandra:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
- 对剩余的新 Cassandra 节点重复执行这两个步骤。
- 在以下设备上安装“
- 重新构建三个新的 Cassandra 节点,并将区域名称指定为数据中心
在其中添加节点(
dc-1
、dc-2
等)。 在此示例中,它是dc-1
: <ph type="x-smartling-placeholder">- </ph>
- 在第一个节点上,运行以下命令:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1
其中,nodeIP 是 Cassandra 节点的 IP 地址。
只有在以下情况下,您才需要传递用户名和密码: 为 Cassandra 启用了 JMX 身份验证。
- 在剩余的新 Cassandra 节点上重复此步骤。
- 在第一个节点上,运行以下命令:
重新配置管理服务器
在管理服务器节点上
- 重新运行 setup.sh 文件,为新添加的 Cassandra 节点更新管理服务器:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile
重启所有路由器和邮件 处理器
- 在所有路由器上:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- 在所有消息处理器上:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
现有磁盘 Cassandra 节点
添加新节点后,您可以在nodetool cleanup
先前存在的节点以释放磁盘空间。此命令会清除
不再归现有 Cassandra 节点所有。
要在添加新节点后释放现有 Cassandra 节点上的磁盘空间,请执行 以下命令:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
只有在以下情况下,您才需要传递用户名和密码: 为 Cassandra 启用了 JMX 身份验证。
验证重新生成
使用以下命令验证重新构建是否成功:
nodetool [-u username -pw password] -h nodeIP netstats
当节点已启动且有索引时,此命令应指示 MODE: Normal
。
nodetool [-u username -pw password] -h nodeIP statusthrift
应指明旧服务器服务器正在运行,以便 Cassandra 接受新客户端 请求。
nodetool [-u username -pw password] -h nodeIP statusbinary
应表示本地传输(或二进制协议)正在运行。
nodetool [-u username -pw password] -h nodeIP describecluster
应显示新节点使用的架构版本与旧节点相同。
如需详细了解如何使用 nodetool
,请参阅
nodetool 用法文档。