我在Cassandra中有三个节点出现问题,每个节点都在一台计算机上,因为我正在尝试建立我的第一个Cassandra结构。我已经在Datastax文档中设置了所有内容,并且我在每台机器的不同cassandra.yaml中具有相同的配置(更改相对的ips)。在配置所有内容之后,每台计算机都将其视为DN,每台计算机(localhost)显示为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的原因以及为什么我将获得两个数据中心的任何提示都会受到高度关注。这让我发疯了!
感谢阅读。
答案 0 :(得分:0)
有关如何解决所有其他节点显示为Down Normal的原因以及为什么我将获得两个数据中心的任何提示都会受到高度关注。这让我发疯了!
在每台计算机上,编辑 $ CASSANDRA_HOME / conf / cassandra-rackdc.properties 文件进行设置:
ko.bindingHandlers.formatDate = {
update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var value = valueAccessor();
var newValueAccessor = ko.unwrap(value);
var dt = new Date(newValueAccessor);
if (newValueAccessor != null)
$(element).text(dt.toLocaleDateString());
}
};
nodetool status 表示您为2个节点(DC1而不是dc1)设置了错误的DC名称。它是区分大小写
答案 1 :(得分:0)
看起来有些安装的节点已经死了,所以我删除了每个节点中不是本地机器的节点,即:
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,seeds,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