出现在不同数据中心的 Cassandra 节点

Cassandra nodes appearing in different datacenters

我在尝试设置我的第一个 Cassandra 结构时遇到了 Cassandra 中的三个节点的问题,每个节点都在一台单独的计算机上。我已经设置了 Datastax 文档中的所有内容,并且在每台机器的不同 cassandra.yaml 中具有相同的配置(更改相对 ips)。问题是在配置完所有内容后,每台计算机都将彼此视为 DN,每台机器(本地主机)都显示为 UN,不同之处在于在 .101 计算机中我可以看到两个不同的数据中心,而在其他计算机中只有一个数据中心出现。

所以在我的 192.168.1.101 机器上输入

sudo nodetool status

我得到这个输出:

Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns    Host ID                               Rack
DN  192.168.1.200  ?          256          ?       968d5d1e-a113-40ce-9521-e392a927ea5e  r1
DN  192.168.1.102  ?          256          ?       fc5c2dbe-8834-4040-9e77-c3d8199b6767  r1
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns    Host ID                               Rack
UN  127.0.0.1      446.13 KB  256          ?       6d28d540-2b44-4522-8612-b5f70a3d7d52  rack1

而当我在另外两台机器中的一台上输入 "nodetool status" 时,我得到了这个输出:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns    Host ID                               Rack
DN  192.168.1.200  ?          256          ?       968d5d1e-a113-40ce-9521-e392a927ea5e  rack1
UN  127.0.0.1      506,04 KB  256          ?       fc5c2dbe-8834-4040-9e77-c3d8199b6767  rack1
DN  192.168.1.101  ?          256          ?       6d28d540-2b44-4522-8612-b5f70a3d7d52  rack1

在 OpsCenter 中我只能看到我的 192.168.1.101 机器:

...这让我觉得这台机器和其他机器的yaml文件有些奇怪,但我检查了几次,其他机器的配置似乎是一样的。 Enpoint_snitch 设置为 "GossipingPropertyFileSnitch"。

任何关于如何解决为什么所有其他节点都显示为 Down Normal 的原因以及为什么我得到两个数据中心的提示都将受到高度赞赏。这让我疯狂!

感谢阅读。

Any tips on how to solve the reason why all the other nodes appear as Down Normal and why I am getting two datacenters would be highly appreaciated. It's driving me crazy!

在每台机器上,编辑 $CASSANDRA_HOME/conf/cassandra-rackdc.properties 文件以设置:

dc=dc1
rack=rack1

nodetool status 表明您为 2 个节点设置了错误的 DC 名称(DC1 而不是 dc1)。 区分大小写

貌似有些安装的节点死机了,所以我删除了每个节点中不是本地机器的节点,即:

nodetool removenode 968d5d1e-a113-40ce-9521-e392a927ea5e
nodetool removenode fc5c2dbe-8834-4040-9e77-c3d8199b6767

然后我在执行 nodetools status 时得到了正确的输出

[machine1]~$ sudo nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns    Host ID                               Rack
UN  127.0.0.1  286.93 KB  256          ?       6d28d540-2b44-4522-8612-b5f70a3d7d52  rack1


[machine2]~$ sudo nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns    Host ID                               Rack
UN  127.0.0.1  268.45 KB  256          ?       fc5c2dbe-8834-4040-9e77-c3d8199b6767  rack1

并确保参数 cluster_name、种子、listen_address 和 rpc_address 正确。

cluster_name: 'Test Cluster'
seeds: "192.168.1.101, 192.168.1.102"
listen_address: 192.168.1.101
rpc_address: 192.168.1.101

将listen_address和rpc_address改成各自对应的cassandra.yaml文件中每台机器对应的ip

之后我得到了正确的输出(我现在只使用 2 台机器作为节点):

Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.1.101  309.13 KB  256          51.6%             6d28d540-2b44-4522-8612-b5f70a3d7d52  rack1
UN  192.168.1.102  257.15 KB  256          48.4%             fc5c2dbe-8834-4040-9e77-c3d8199b6767  rack1