我有一个单节点Cassandra集群,我向该集群添加了一个新节点。我确保群集名称相同,机架直流属性相同。我还确保节点可以通过所有必要的端口进行通信。我可以从两个节点相互cqlsh,也可以远程登录所有必需的端口7000,7199,9042
Cassandra.yaml for new node
1) seed: - "<old_node_ip>,<new_node_ip>"
2) auto_bootstrap: - true
3) listen_address: <new_node_ip>
4) rpc_address: <new_node_ip>
nodetool status 命令仅显示两个节点上的主机节点(自身(
在打开的 jdk 8 上运行 cassandra v 3.11.4
我错过了什么吗?
更新
这是日志:
java.lang.RuntimeException: Unable to gossip with any peers
at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1435) ~[apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:566) ~[apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:823) ~[apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:683) ~[apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:632) ~[apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:388) [apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:620) [apache-cassandra-3.11.4.jar:3.11.4]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:732) [apache-cassandra-3.11.4.jar:3.11.4]
INFO [StorageServiceShutdownHook] 2019-10-21 13:08:14,218 HintsService.java:209 - Paused hints dispatch
WARN [StorageServiceShutdownHook] 2019-10-21 13:08:14,219 Gossiper.java:1559 - No local state, state is in silent shutdown, or node hasn't joined, not announcing shutdown
INFO [StorageServiceShutdownHook] 2019-10-21 13:08:14,219 MessagingService.java:981 - Waiting for messaging service to quiesce
INFO [ACCEPT-/10.128.1.3] 2019-10-21 13:08:14,220 MessagingService.java:1336 - MessagingService has terminated the accept() thread
INFO [StorageServiceShutdownHook] 2019-10-21 13:08:14,764 HintsService.java:209 - Paused hints dispatch
它说无法与同行八卦,但我可以在JMX端口上telnet,并且种子值也提到了正确
让新节点加入/八卦现有节点需要三个主要事项:
cluster_name
- 两个节点的群集名称必须完全匹配(区分大小写(。seeds
- 新节点必须使用现有节点作为种子节点。 如果您在云环境中工作,则必须使用"外部"(也称为"浮动"(IP 地址。
节点- 到节点 SSL(如果使用(- 节点必须具有匹配的信任库才能连接。
有一件事是关于我的old_node cassandra 正在使用 localhost (127.0.0.1(,如 nodetool 状态所示。
2一.两个节点都不能使用 127.0.0.1 的主 IP。
尝试将新节点添加到单个 DC 群集时出现此错误。我错误背后的原因是我在cassandra.yaml中的broadcast_address参数与listen_address的IP不同。我将其设置为空白并重新启动了解决问题的服务器。
# Address to broadcast to other Cassandra nodes
# Leaving this blank will set it to the same value as listen_address
broadcast_address: