【问题标题】:How do I initialize a multi-node Cassandra cluster?如何初始化多节点 Cassandra 集群?
【发布时间】:2021-04-23 17:26:33
【问题描述】:

我在我的 Ubuntu VM1 上安装了 Cassandra DB,还安装在其他 VM Ubuntu VM2 上。 我的问题是:

如何在我的虚拟机上初始化多节点集群(单个数据中心)?

我还更改了我的 Cassandra.yaml,如下所示:

  1. IP 默认为 IP 系统种子,listen_address。
  2. cluster_name: 'MyDigitalOceanCluster'
  3. initial_token: 0
  4. seed_provider:
  5. 种子:“198.211.50.0”
  6. listen_address: 198.211.50.0
  7. rpc_address: 0.0.0.0
  8. endpoint_snitch:RackInferringSnitch

更改后我收到此消息:

Connection error: ('Unable to connect to any servers', {'127.0.0.1': 
error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: 
Connection refused")})

【问题讨论】:

  • 你是怎么看到这个错误的?来自 cqlsh?
  • 只是想知道,因为 IP 地址真的应该用cqlsh 指定。此外,seeds: 参数应该具有两个 IP 地址(在 2 节点集群中,我会将它们设为两个种子节点)。

标签: cassandra cassandra-3.0


【解决方案1】:

Aaron 已经为您提供了很多答案,但值得在cassandra.yaml 中设置以下内容:

  • num_tokens: 16 或者如果您更喜欢指定代币,请确保选择平衡的代币
  • listen_address: private_ip
  • rpc_address: public_ip(如果您的虚拟机只有 1 个网卡,则使用相同的 IP)
  • seeds设置为两个节点的IP(1个节点就足够了,2个是首选)
  • 推荐endpoint_snitch: GossipingPropertyFileSnitch,而且几乎总是正确的选择(请参阅我的理由https://community.datastax.com/questions/8887/

使用cqlsh连接时,需要指定节点的客户端IP(rpc_address),否则默认为localhost127.0.0.1)。例如:

$ cqlsh 198.211.50.0

干杯!

【讨论】:

  • 非常感谢,但我不明白。我的意思是我像这样更改了cassandra yaml:1-listen_address:private_ip 2-种子:其他节点private_ip 3-rpc_address:private_ip,我正在本地VM上工作,我没有任何公共地址?当您谈论公共地址时,您是什么意思,因为我没有任何public_ip ????我现在能做什么??????
  • 正如我在回答中所说,如果您的虚拟机只有 1 个 NIC,您可以为 listen_addressrpc_address 使用相同的 IP。干杯!
猜你喜欢
  • 2020-04-12
  • 2016-08-14
  • 2012-05-02
  • 2018-01-18
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 2017-10-27
相关资源
最近更新 更多