Cassandra多节点群集设置问题
我正在尝试使用OpenJDK在CentOS 7上设置Cassandra多节点集群 我有两个节点:Cassandra多节点群集设置问题,cassandra,Cassandra,我正在尝试使用OpenJDK在CentOS 7上设置Cassandra多节点集群 我有两个节点: 节点1 10.99.189.49 节点2 10.99.189.50 到目前为止,我做了以下几件事: 从PlanetCassandra网站下载了卡桑德拉的tarball 在文档文件夹中解压缩它 创建了YAML文件中提到的所有必要目录(data/saved_cache、data/commitlog、data/data) 我在conf/cassandra.yaml文件中做了3项更改,如下所示: 在节点
- 节点1 10.99.189.49
- 节点2 10.99.189.50
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
我只能看到其中的一个节点
有人能指出我做错了什么或遗漏了什么吗?在两个节点上使用
seeds: "10.99.189.49,10.99.189.50"
同时重新启动两个节点cassandra,所以我开始在评论中添加提示,这是我第三次想把它们放在一个实际的答案中
DataStax很好地记录了这应该如何工作。确保您已经阅读了这些文档(特别是第一个文档),并且遵循了所有步骤:
集群名称都相同
我发现使用流言蜚语PropertyFileSnitch更容易做到这一点。在每个节点的cassandra.yaml中设置:
endpoint_snitch: GossipingPropertyFileSnitch
然后确保每个节点在cassandra rackdc.properties文件中指定相同的默认数据中心:
dc=DC1
启动并运行第一个节点(.49)。使用nodetool状态验证它
还要验证您是否有。从.49开始,尝试telnet
ing到Cassandra所需端口上的另一个节点。我建议使用7000,因为它是用于非SSL节点间通信的端口
telnet 10.99.189.50 7000
一旦你确定所有的工作都正常,并且所有的配置都正确,然后打开.50。我记得读过一篇文章,在启动另一个节点之前,您应该至少等待2分钟,所以为了安全起见,请这样做。跟踪日志以确保它与其他节点握手,或查看任何错误:
tail -f /var/log/cassandra/system.log
注意:您的日志位置可能会有所不同。我假设你正在运行2.2。如果您使用的是不同版本的Cassandra,请注明
希望这有帮助 在日志中是否看到节点正在相互通信的证据?或者,日志中是否存在明显错误?还要确保cluster\u name
相同。@Aaron是,集群名称相同。@mikea否,日志中没有明显错误:(您确定节点可以相互看到,并且所有必要的端口(7000、7199、9042)都相同吗它们之间是开放的吗?从.49开始,尝试telnet 10.99.189.50 7000
。但是我不希望另一个节点成为种子,所以为什么要使用此节点?请告诉我原因好吗?