【问题标题】:Cassandra 3 node configurationCassandra 3 节点配置
【发布时间】:2017-11-12 04:56:16
【问题描述】:

我是 Cassandra 的新手,使用最新的 Cassandra 3.10。我有 3 个节点要链接以参与 Cassandra。集群名称Test Cluster与三个节点相同。相同的数据中心 dc1 ,机架为 rack1 和告密为 GossipingPropertyFileSnitch 使用。它配置

节点 A:

-seeds : "A,B,C 地址"

listen_address & rpc_address 与 A 节点 ip 地址相同

节点 B:

-seeds : "A,B,C 地址"

listen_address & rpc_address 与 B 节点 ip 地址相同

节点 C:

-seeds : "A,B,C 地址"

listen_address & rpc_address 与 C 节点 ip 地址相同

我在这里列出的可能性

i) 假设如果 A 节点发生故障,则从节点 B 和 C 获取数据。

ii) 如果任何一个或两个节点发生故障,则从另一个节点获取数据。如何配置这些节点。

我使用了具有复制因子 3 的简单策略。 如果节点故障从另一个节点获取节点数据检索如此,种子地址还是弄错了?简要说明该怎么做。

【问题讨论】:

  • 您可以使用 DataStax OpsCenter 为您配置和安装 Cassandra,或阅读 DataStax 文档
  • 是的,我读过,但对种子地址和复制因子有点困惑
  • 复制因子 = 你需要多少份数据。在小型集群中,您不需要 3 倍...种子地址只需是小型集群中的单个(外部)IP 地址。所有节点必须具有相同的种子(至少我是这样配置的)
  • 好的。我尝试复制三个节点的数据。如果示例 java 线程在单个节点 A 上运行,则复制 B 和 C 节点。所以所有节点都有数据。种子指向所有其他节点对吗?我的配置是对的。
  • 把种子想象成“主人”或“大脑”。每个配置都指向相同的服务器列表。如果您可以启动服务并运行nodetool status,并查看服务器,那么它可以工作

标签: cassandra


【解决方案1】:

回答您的问题:

如果节点 A 出现故障,那么您想从节点 B 和 C 获取数据。
如果一个或两个节点出现故障,您想从其他节点获取数据。

为了实现上述目的,您配置的复制因子足以处理节点故障。错误的配置是让你的所有节点都是种子节点。

种子节点用于引导其他节点,因此通常在数据中心中首先启动第一个节点作为种子节点。假设您有 2 个数据中心。然后您应该有 2 个种子节点,如下面的 datastax 文档中所述: http://docs.datastax.com/en/cassandra/3.0/cassandra/initialize/initSingleDS.html

根据您的最后评论,您提到了“检测到架构版本不匹配”。这意味着您的所有节点都不在同一个集群中。当所有节点都在运行时,使用 nodetool 检查架构

nodetool describecluster

这应该给出节点架构版本。所有节点都应该是相同的架构版本。
因此,如果任何一个节点的版本不同,则重新启动节点,直到架构版本相同。

修复此架构错误后,您将能够创建密钥空间。

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多