【问题标题】:Cassandra new node unable to join the clusterCassandra 新节点无法加入集群
【发布时间】:2020-08-05 03:54:46
【问题描述】:

实际上我正在添加新的 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 中没有错误。另一方面,新节点在现有的两个节点中是不可见的。

【问题讨论】:

    标签: elasticsearch cassandra elassandra


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 好吧,实际上我已经在 ufw 中允许了所有必需的端口。所以我很有信心这个问题与连接无关。但是一旦检查到firewalld,它就被使用了!然后我就停止服务,然后……一切都像魅力一样。谢谢!