Cassandra多节点群集设置问题

时间:2016-03-07 13:09:45

标签: cassandra

我正在尝试使用OpenJDK在CentOS 7上设置一个Cassandra多节点集群。

我有2个节点:

  • node1 10.99.189.49
  • node2 10.99.189.50

到目前为止,我已经做了很多事情:

  1. 从PlanetCassandra网站下载Cassandra的tarball
  2. 在Documents文件夹中提取。
  3. 创建了YAML文件中提到的所有必要目录(data / saved_cache,data / commitlog,data / data)。
  4. 我在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
    

    我只能看到其中的一个节点。

    任何人都可以指出我做错了什么或错过了什么吗?

2 个答案:

答案 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