由于节点在其自己的种子列表中,因此无法与任何种子闲聊但仍在继续

Avi*_*ash 8 amazon-ec2 cassandra nodetool

要在AWS中从2节点集群中删除节点,我运行了

nodetool removenode <Host ID>

此后,我应该让我的集群回来,如果我把所有的cassandra.yamlcassandra-rackdc.properties正确的.我做了但仍然,我无法恢复我的群集.

nodetool status 只显示一个节点.

cassandra上的重要system.log是:

INFO  [main] 2017-08-14 13:03:46,409 StorageService.java:553 - Cassandra version: 3.9
INFO  [main] 2017-08-14 13:03:46,409 StorageService.java:554 - Thrift API version: 20.1.0
INFO  [main] 2017-08-14 13:03:46,409 StorageService.java:555 - CQL supported versions: 3.4.2 (default: 3.4.2)
INFO  [main] 2017-08-14 13:03:46,445 IndexSummaryManager.java:85 - Initializing index summary manager with a memory pool size of 198 MB and a resize interval of 60 minutes
INFO  [main] 2017-08-14 13:03:46,459 MessagingService.java:570 - Starting Messaging Service on /172.15.81.249:7000 (eth0)
INFO  [ScheduledTasks:1] 2017-08-14 13:03:48,424 TokenMetadata.java:448 - Updating topology for all endpoints that have changed
WARN  [main] 2017-08-14 13:04:17,497 Gossiper.java:1388 - Unable to gossip with any seeds but continuing since node is in its own seed list
INFO  [main] 2017-08-14 13:04:17,499 StorageService.java:687 - Loading persisted ring state
INFO  [main] 2017-08-14 13:04:17,500 StorageService.java:796 - Starting up server gossip
Run Code Online (Sandbox Code Playgroud)

文件内容:

cassandra.yaml:https://pastebin.com/A3BVUUUr

cassandra-rackdc.properties:https://pastebin.com/xmmvwksZ

system.log:https://pastebin.com/2KA60Sve

netstat -atun https://pastebin.com/Dsd17i0G

两个节点都具有相同的错误日志.

所有必需的端口都是开放的

有什么建议吗?

Ore*_*esz 5

如果您的数据中心只有两个节点,那么每个DC一个种子节点通常是最佳做法.在这种情况下,您不应该将每个节点都设为种子节点.

我注意到你的配置中- seeds: "node1,node2"有node1 和node2 - seeds: "node2,node1".如果节点可以- seeds: ...cassandra.yml配置文件中找到它的IP地址作为第一个元素,则默认情况下将启动节点而不联系任何其他种子.这也是您在日志中可以找到的内容:

... Unable to gossip with any seeds but continuing since node is in its own seed list ...

我怀疑,在你的情况下,node1和node2在没有相互联系的情况下开始,因为它们将自己标识为种子节点.

尝试在两个实例的配置中仅将node1用于种子节点,然后重新启动群集.如果node1关闭且node2启动,则必须将- seeds: ...node1配置中的section 更改为仅指向node2的IP地址,然后只启动node1.

如果由于防火墙配置错误导致节点无法找到对方,则通常可以通过这种方法验证是否可以从其他位置访问特定端口.例如,您可以nc用于检查某个端口是否打开:

nc -vz node1 7000
Run Code Online (Sandbox Code Playgroud)

参考和链接

请参阅以下链接中的Cassandra正在使用的端口列表 http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/secureFireWall.html

另请参阅有关使用大量示例命令运行多个节点的详细文档:http: //docs.datastax.com/en/cassandra/2.1/cassandra/initialize/initializeMultipleDS.html