我正在使用AWS CloudFormation创建一个3节点的Datastax Cassandra集群。在我所有节点上的ec2-user主目录中,我在文本文件(seeds.txt)中创建种子IP。正在按预期创建群集。 Node1是种子节点。但是Node2和Node3正在将它们各自的私有IP设置为种子IP。有没有人知道在node2和node3上的cassandra.yaml文件中设置种子IP的脚本/命令? 我已经尝试使用sed命令从ec2-user主目录中获取cats seeds.txt并修改cassandra.yaml文件,但它不起作用。这是我的cassandra.yaml文件的一部分,
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: "1.2.3.4"
答案 0 :(得分:0)
我们有类似的设置并使用了etcd和etcd-seed provider以便找出我们的种子节点。
这意味着您必须在启动期间在etcd群集中注册种子节点。我们通过调整cassandra的启动脚本来解决这个问题。
见(第62行): https://github.com/zalando/stups-cassandra/blob/master/stups-cassandra.sh
最诚挚的问候,
马尔特
答案 1 :(得分:0)
你可以看看是什么 https://github.com/riptano/ComboAMI正在为DS Cassandra AMI做准备。 简而言之,他们使用的是集中式反射器服务,所有节点都通过HTTP连接到该服务。