Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra多节点群集设置问题_Cassandra - Fatal编程技术网

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项更改,如下所示: 在节点

我正在尝试使用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项更改,如下所示:

    在节点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
    
    我只能看到其中的一个节点

    有人能指出我做错了什么或遗漏了什么吗?

    在两个节点上使用

    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
    。但是我不希望另一个节点成为种子,所以为什么要使用此节点?请告诉我原因好吗?