我正在尝试使用OpenJDK在CentOS 7上设置一个Cassandra多节点集群。
我有2个节点:
到目前为止,我已经做了很多事情:
我在conf / cassandra.yaml文件中进行了3次更改,如下所示:
在节点10.99.189.49上:
seeds: "10.99.189.49"
listen_address: 10.99.189.49
rpc_address: 10.99.189.49
在节点10.99.189.50上:
seeds: "10.99.189.49"
listen_address: 10.99.189.50
rpc_address: 10.99.189.50
现在我在节点10.99.189.49上运行cassandra 然后我在另一个节点上运行cassandra。
Cassandra正常在两个节点上启动 但 当我这样做时:
bin/nodetool status
我只能看到其中的一个节点。
任何人都可以指出我做错了什么或错过了什么吗?
答案 0 :(得分:1)
所以我开始在评论中添加提示,第三次我认为我会在实际答案中将它们全部放在一起。
DataStax在记录这应该如何工作方面做得非常好。确保您已经完成了这些文档(特别是第一个)并且您正在执行所有步骤:
除了上面提到的所有内容之外,请确保每个节点上的cluster_name
都相同。
我发现使用GossipingPropertyFileSnitch更容易完成这项工作。在每个节点的 cassandra.yaml 中设置:
endpoint_snitch: GossipingPropertyFileSnitch
然后确保每个节点都在 cassandra-rackdc.properties 文件中指定相同的默认数据中心:
dc=DC1
让您的第一个节点(.49)启动并运行。使用nodetool status
进行验证。
同时确认您有opened the necessary ports in your firewall。从.49开始,尝试telnet
到达Cassandra所需端口上的另一个节点。我建议使用7000,因为这是非SSL节点间通信的端口。
telnet 10.99.189.50 7000
一旦你确定一切正常并且所有内容都配置正确,然后就会显示.50。我记得读过你应该在启动另一个节点之前至少等待2分钟,所以这样做只是为了安全起见。关闭日志以确保它与其他节点握手,或查看任何错误:
tail -f /var/log/cassandra/system.log
注意:您的日志位置可能有所不同。我假设你正在运行2.2。如果您使用的是不同版本的Cassandra,请注明。
希望这有帮助!
答案 1 :(得分:0)
在两个节点上使用
seeds: "10.99.189.49,10.99.189.50"
并重启两个节点cassandra