我在同一个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.yaml
,listen_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
最后,如果回答这个证明太困难,而不是直截了当,有人能指出我正确的方向,以获得有关如何做到这一点的进一步信息吗?
感谢您阅读本文。
此致
答案 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)之前,不要启动下一个节点。