1

实际上我正在添加新的 Elassandra 节点,但问题显然涉及到 Cassandra 配置。

以前,我在集群中有两个节点。彼此之间有着完美的联系。使用 nodetool status 还会返回两个节点信息。

然后我按照这篇文章https://docs.datastax.com/en/archived/cassandra/2.0/cassandra/operations/ops_add_node_to_cluster_t.html将新节点添加到集群中

我在新节点中设置的参数,

cluster_name, 
seeds (without itself), 
listen_address (its ip), 
start_native_transport: true, 
endpoint_snitch: GossipingPropertyFileSnitch, 
rpc_address (its ip)

服务失败并显示日志

2020-08-05 03:32:53,815 ERROR [main] ElassandraDaemon.java:585 main Exception
java.lang.RuntimeException: Unable to gossip with any peers
    at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1435)

然后我通过将新节点 ip 添加到种子来更改配置。该服务工作正常,但 nodetool 状态(在新节点上)仅显示自身,在 /var/cassandra/system.log 中没有错误。另一方面,新节点在现有的两个节点中不可见。

4

1 回答 1

2

我已经看到了很多,它通常是环境问题而不是 Cassandra 问题。

检查 IP 上的节点之间是否存在双向流量,listen_address并且它们可以在 gossip 端口上相互联系7000

您最想消除阻止流量的软件/硬件防火墙。否则,请确保存在网络连接。

如果对您有帮助,我已经在这篇文章中详细讨论了这一点——https: //community.datastax.com/questions/7413/。干杯!

于 2020-08-05T05:17:52.277 回答