如何创建多节点数据中心 - Cassandra

时间:2015-10-19 22:12:59

标签: cassandra

我在同一个Intranet中成功设置了两个节点。两台机器都在同一个集群中。我的意思是他们都在cluster_name: 'Test Cluster'文件中设置了此属性cassandra.yaml。我读到这在链接节点时很重要。无论如何,我对以下指南非常困惑:http://wiki.apache.org/cassandra/GettingStarted

我正在尝试按照“配置多节点群集”一节的说明进行操作,但是没有足够的细节或示例来确切地说明如何执行此操作。

# any class that implements the SeedProvider interface and has a
# constructor that takes a Map<String, String> of parameters will do.
seed_provider:
    # Addresses of hosts that are deemed contact points. 
    # Cassandra nodes use this list of hosts to find each other and learn
    # the topology of the ring.  You must change this if you are running
    # multiple nodes!
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          # seeds is actually a comma-delimited list of addresses.
          # Ex: "<ip1>,<ip2>,<ip3>"
          - seeds: "localhost"

以上是本节中提到的处理cassandra.yaml的{​​{1}}文件的一部分。我不确定是否a)我应该将我的机器的IP地址放在seeds部分或b)我尝试连接的远程节点。

此外,本节还提到了更改seeds:listen_address。但是,他们没有解释我尝试连接的远程节点是否应该具有 listen_address ,或者该地址是否应该是我自己的机器正在等待tcp数据包。我对 rpc_address 感到困惑。

下面将从rpc_address文件中找到相关条目:

cassandra.yamllisten_address: "localhost"

我正在使用rpc_address: localhost命令检查我是否已成功连接到远程节点,但到目前为止程序只显示我的机器及其状​​态。

另外,我发现了一个类似的教程,到目前为止对我来说也没什么意义。所述教程的URL位于:https://www.digitalocean.com/community/tutorials/how-to-configure-a-multi-node-cluster-with-cassandra-on-a-ubuntu-vps

最后,如果回答这个证明太困难,而不是直截了当,有人能指出我正确的方向,以获得有关如何做到这一点的进一步信息吗?

感谢您阅读本文。

此致

1 个答案:

答案 0 :(得分:1)

数字海洋指南很差。 Datastax往往有更好的文档:

http://docs.datastax.com/en/cassandra/2.2/cassandra/initialize/initMultipleDS.html

简短版本: 1)计算出你将拥有多少个节点,并为每个数据中心选择至少1个种子IP。

2)使用种子列表中的那些IP设置cassandra.yaml。对于各种_address字段,您几乎不需要'localhost',并且您通常需要listen_address和rpc_address的真实IP(无论您使用公共IP还是私有IP取决于您如何进行跨DC流量)。您还将配置您的告警并设置其他一些参数。

3)设置cassandra-rackdc.properties,这是'gossiping属性文件snitch'使用的文件(将IP映射到数据中心,并告诉cassandra如何在数据中心之间放置副本)。

4)首先开始你的种子,他们将自己创建群集。

5)一次启动一个非种子节点,使用“nodetool status”观察它们加入环。在加入节点的状态为“UN”(Up,Normal)之前,不要启动下一个节点。