Java nodetool状态:“;错误:群集中不存在节点。此节点已完成启动吗?“;

Java nodetool状态:“;错误:群集中不存在节点。此节点已完成启动吗?“;,java,cassandra,cluster-computing,cassandra-2.0,Java,Cassandra,Cluster Computing,Cassandra 2.0,我正在尝试使用以下节点配置设置2节点cassandra-2.1群集: Cluster Name: 'Cluster1' num_tokens: 256 listen_address: 10.20.0.52/10.20.0.53 rpc_address: 10.20.0.52/10.20.0.53 class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: # seeds is actually a com

我正在尝试使用以下节点配置设置2节点cassandra-2.1群集:

Cluster Name: 'Cluster1'
num_tokens: 256
listen_address: 10.20.0.52/10.20.0.53
rpc_address: 10.20.0.52/10.20.0.53
class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
    # seeds is actually a comma-delimited list of addresses.
    # Ex: "<ip1>,<ip2>,<ip3>"
    - seeds: "10.20.0.52"
但在非种子节点(53)上,它返回标准输出,其中仅包含自身的详细信息(53)。 种子节点(52)上的nodetool gossipinfo返回有关两个节点的信息:

/10.20.0.52
  generation:1439824481
  heartbeat:2433
  SCHEMA:500091e4-e8ab-303d-9111-8cca7edff2d0
  HOST_ID:2d78ed48-13e8-4fc5-ac55-8b2a6d00c8c5
  NET_VERSION:8
  RELEASE_VERSION:2.1.8-SNAPSHOT
  STATUS:NORMAL,-1091407767707699731
  RPC_ADDRESS:10.20.0.52
  SEVERITY:0.5025125741958618
  DC:DC1
  LOAD:2524926.0
  RACK:RAC1
  INTERNAL_IP:10.20.0.52
/10.20.0.53
  generation:1439824502
  heartbeat:2376
  SCHEMA:500091e4-e8ab-303d-9111-8cca7edff2d0
  NET_VERSION:8
  HOST_ID:2d78ed48-13e8-4fc5-ac55-8b2a6d00c8c5
  RELEASE_VERSION:2.1.8-SNAPSHOT
  STATUS:NORMAL,-1091407767707699731
  RPC_ADDRESS:10.20.0.53
  SEVERITY:0.0
  DC:DC1
  LOAD:2603302.0
  RACK:RAC1
  INTERNAL_IP:10.20.0.53
但在非种子节点上,它仅显示关于自身的信息,不包括种子节点(52)

关于这两个节点的状态/信息之间的另一个差异是
nodetool netstats
的输出,对于种子节点(52),该输出显示:

而对于非种子节点(53),完成的请求数是种子节点的两倍:

ubuntu@53:~$ nodetool netstats 
Mode: NORMAL
Not sending any streams.
Read Repair Statistics:
Attempted: 0
Mismatch (Blocking): 0
Mismatch (Background): 0
Pool Name                    Active   Pending      Completed
Commands                        n/a         0              0
Responses                       n/a         0           2388
源代码 给定stacktrace,我尝试插入一些标志,并在调用
describeOwnership
方法时打印L206
Murruil3Partitioner.java
上出现错误的原因: -启动种子节点时调用该方法 -在引导非种子节点时调用该方法

两次toke列表(或
sortedTokens
)完全相同,但迭代器为空并触发标题中的错误

注:两个节点(52,53)上的相关端口(70007001)均打开

更新#1:因此,我发现(多亏了irc#cassandra频道),如果两个节点具有相同的toke,则会创建冲突,其中一个将无法引导

为了解决这个问题,我尝试了以下方法: cqlsh>删除键空间ycsb

它没有解决问题-
nodetool环
仍然显示与非种子节点对应的相同令牌;关闭
cqlsh
后,我还刷新了更改。然后:

sudo rm -rf /var/lib/cassandra/data/*
sudo rm -rf /var/lib/cassandra/commitlog/*
sudo rm -rf /var/lib/cassandra/saved_caches/*
这仍然没有减少或改变出现在
nodetool环中的toke


感谢您的指导

罪魁祸首似乎是端口和防火墙规则,它们不允许节点建立双向对称连接以交换驻留在每个节点上的令牌。所采取的故障排除步骤为:
1)
nestat-l
在两个节点上查看哪些端口处于打开/侦听状态
2)
nmap
从一个节点到另一个节点扫描打开的端口。
3)
nodetool环
比较两个节点上的令牌
4)
TRACE
logback.xml
中设置日志记录级别,并在单独的日志文件中或输出到
stderr

我还建议您与卡桑德拉IRC频道讨论您的问题。那里的人学识渊博,几乎可以实时提供帮助


希望有帮助

罪魁祸首似乎是端口和防火墙规则,它们不允许节点建立双向对称连接以交换驻留在每个节点上的令牌。所采取的故障排除步骤为:
1)
nestat-l
在两个节点上查看哪些端口处于打开/侦听状态
2)
nmap
从一个节点到另一个节点扫描打开的端口。
3)
nodetool环
比较两个节点上的令牌
4)
TRACE
logback.xml
中设置日志记录级别,并在单独的日志文件中或输出到
stderr

我还建议您与卡桑德拉IRC频道讨论您的问题。那里的人学识渊博,几乎可以实时提供帮助

希望有帮助

ubuntu@53:~$ nodetool netstats 
Mode: NORMAL
Not sending any streams.
Read Repair Statistics:
Attempted: 0
Mismatch (Blocking): 0
Mismatch (Background): 0
Pool Name                    Active   Pending      Completed
Commands                        n/a         0              0
Responses                       n/a         0           2388
sudo rm -rf /var/lib/cassandra/data/*
sudo rm -rf /var/lib/cassandra/commitlog/*
sudo rm -rf /var/lib/cassandra/saved_caches/*