cassandra节点发现

我只设置了一个3个节点的系统,IP地址为“192.168.0.101”,“192.168.0.102”,“192.168.0.103”。 我已经把所有三台机器configuration的种子值设定为seeds: "192.168.0.101,192.168.0.102,192.168.0.103"

但是,在任何一个上运行nodetool,只有103机器被发现。

node101:/opt/cassandra/apache-cassandra-0.8.5/bin# ./nodetool ring -h 192.168.0.101地址DC机架状态状态加载拥有令牌

192.168.0.103 datacenter1 rack1上一级正常151.96 KB
100.00%38174485210079977599903748344879358256

有人能告诉我问题在哪里吗?

在将新机器引导到群集中时,种子实际上是非常重要的,只能将它们设置为群集的成熟成员。

在三节点集群中,我通常是:

  1. 充分调出第一个节点。 节俭和nodetool都应该与它一起工作。
  2. 在第二个和第三个节点上安装Cassandra。
  3. 在第二个和第三个节点上停止Cassandra并擦除数据(如果您在安装包的Debian风格的发行版启动服务)
  4. 将第二个和第三个节点configuration为使用第一个作为种子。
  5. 将所有三个节点的侦听地址configuration为其他节点可以访问的IP。
  6. 启动第二个节点。
  7. 启动第三个节点。
  8. 观察每个节点上的/var/log/cassandra/system.log,以获取关于其他人join环的通知。

在你的情况(没有看到发现),我会仔细检查以下内容:

  • 每个节点上的监听地址是可以相互ping通的。
  • 所有三个节点上的群集名称是相同的。
  • 没有节点抱怨磁盘上的集群名称不匹配configuration的集群名称。
  • system.log中的节点提到他们正在听说其他节点联机。

另外,请在每个节点上运行nodetool ring命令,看看他们是否都认为他们是单节点环的成员。

确保你设置的IP地址的监听地址。 默认情况下,Cassandra会在主机名上执行反向DNS,这可能会导致绑定本地主机,具体取决于您的机器如何设置。