2017-06-10 95 views
0

我是Cassandra的新手,使用最新的Cassandra 3.10。我有3个节点可以链接参与Cassandra。集群名称测试集群与三个节点相同。同一个数据中心DC1,机架如同RACK1和打小报告为使用。它提供配置Cassandra 3节点配置

节点A GossipingPropertyFileSnitch

-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使用的简单策略。 如果节点故障从另一个节点获取节点数据,那么种子地址或错误?简要解释该怎么做。

+0

您可以使用DataStax OpsCenter为您配置和安装Cassandra,或者阅读DataStax文档 –

+0

是的,我已阅读但很难将种子地址和复制因子复制 –

+0

复制因子=需要多少数据副本。在一个小群集中,您不需要3的因子......种子地址只需要在一个小群集中成为单个(外部)IP地址。所有节点必须具有相同的种子(至少这是我如何配置它) –

回答

0

回答您的问题:

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

为了达到上述目的,您配置的复制因子足以处理节点故障。错误的配置将所有节点都作为种子节点。

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

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

nodetool describecluster 

这应该给节点模式版本。所有节点应该是相同的模式版本。
因此,如果任何一个节点没有相同的版本,则重新启动节点,直到模式版本相同。

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