要从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

文件内容:

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

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

所有必需的端口均已打开。

有什么建议吗?

最佳答案

如果数据中心中只有两个可用节点,通常最好的做法是每个DC 使用一个种子节点。在这种情况下,您不应该使每个节点都成为种子节点。

我注意到您的配置中node1具有- seeds: "node1,node2",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处于启动状态,则必须在node1配置中更改- seeds: ...部分,使其仅指向node2的IP地址,并仅引导node1。

如果您的节点由于防火墙配置错误而无法彼此找到对方,那么通常这是一种验证特定端口是否可以从其他位置访问的好方法。例如。您可以使用nc来检查某个端口是否打开:

nc -vz node1 7000

引用和链接

在以下链接下查看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

关于amazon-ec2 - 无法闲聊任何种子,但由于节点位于其自己的种子列表中而无法继续,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45584748/

10-11 23:12
查看更多