Amazon ec2 cassandra中的nodetool状态,给出以前的节点IP

Amazon ec2 cassandra中的nodetool状态,给出以前的节点IP,amazon-ec2,nosql,cassandra,Amazon Ec2,Nosql,Cassandra,我正在尝试将一个2节点Cassandra集群扩展为一个4节点集群,其中包含4个AmazonEC2实例。我已经创建了四个节点,并在cassandra.yaml文件中做了以下更改 listen_address = 10.30.143.145 seeds = 10.30.143.145,10.159.58.234,10.170.31.252,10.158.52.84 endpoint_snitch: Ec2snitch num_tokens: 256 我已在所有4个节点上复制了这些更改。通过以下步

我正在尝试将一个2节点Cassandra集群扩展为一个4节点集群,其中包含4个AmazonEC2实例。我已经创建了四个节点,并在cassandra.yaml文件中做了以下更改

listen_address = 10.30.143.145 
seeds = 10.30.143.145,10.159.58.234,10.170.31.252,10.158.52.84
endpoint_snitch: Ec2snitch
num_tokens: 256
我已在所有4个节点上复制了这些更改。通过以下步骤,我已经从单节点集群扩展到了双节点集群。但是,在配置4节点集群之后,当我在第一个节点上执行./nodetool状态时,我会得到以下输出:

ubuntu@ip-10-170-31-252:~/VIQ-Cloud/software/apache-cassandra-1.2.5/bin$ ./nodetool status
Datacenter: us-east
===================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns   Host ID                               Rack
UN  10.30.143.145  927.14 KB  256     16.1%  34d0424a-fe07-4047-a2a5-f45b9a0049d6  1a
UN  10.159.58.234  135.2 KB   256     15.7%  00308009-8755-4bce-906f-4eda53a31fc6  1a
UN  10.170.31.252  20.94 GB   256     20.9%  a815f0de-64db-418c-97a3-9aa7be280280  1a
UN  10.158.52.84   311.33 KB  256     15.0%  fc634f65-3cf3-4e24-a9a3-456adbd174e0  1a
Datacenter: UNKNOWN-DC
======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns   Host ID                               Rack
DN  10.170.22.214  ?          256     16.6%  253ee376-c49d-47a1-a321-4f155870c122  UNKNOWN-RACK
DN  10.31.131.35   ?          256     15.7%  e94c0cb1-9635-42c9-8982-450271f7da1c  UNKNOWN-RACK
显示为DN的两个节点的地址是其他EC2节点以前的专用IP的地址(每次重新启动EC2实例都会更改专用IP)。
但是其他3个节点为nodetool状态提供了正确的结果。我想知道cassandra是从哪里挑选以前的IP的,因为我没有在cassandra.yaml文件中提到它们

listen_address = 10.30.143.145 
seeds = 10.30.143.145,10.159.58.234,10.170.31.252,10.158.52.84
endpoint_snitch: Ec2snitch
num_tokens: 256
我遵循了添加新节点的步骤。
请说明发生这种情况的原因

如果您还没有弄明白这一点,我认为答案可能是您需要确保在新节点上的cassandra.yaml中使用Ec2或Ec2多区域snitch。它们被放入“UNKNOWN-DC”这一事实意味着现有节点不知道将它们放入哪个DC。

不确定旧的IP问题。但是,当您将节点添加到集群中时,在引导节点之前,不要使它们成为种子节点。这就是为什么启动时没有向他们发送数据的原因。(一个节点20GB,另一个节点100kb)如果一个节点是种子节点,它在第一次启动时不会经过Cassandra引导阶段,因此它不会获得数据。@Zanson感谢这一新见解。我一直想知道为什么数据集中在一个节点上。这就清楚了。但我认为在cassandra 1.2中默认情况下会启用auto_booststrap。。不是这样吗……是的。但是有很多事情会导致它关闭。因为您不希望每次重新启动节点时都引导它们。因此,作为一个种子节点,已经拥有数据,已经拥有令牌,任何这些东西都将禁用自动引导。