新的cassandra节点无法与种子八卦 [英] new cassandra node can't gossip with seed
问题描述
我正在尝试使用cassandra 2.0.7启动一个新节点。两个节点均位于Digital Ocean。种子节点已启动并正在运行,我可以从尝试启动的节点远程登录到该主机上的端口7000。
I am trying to spin up a new node using cassandra 2.0.7. Both nodes are at Digital Ocean. The seed node is up and running and I can telnet to port 7000 on that host from the node I'm trying to start.
[root@cassandra02 apache-cassandra-2.0.7]# telnet 10.10.1.94 7000
Trying 10.10.1.94...
Connected to 10.10.1.94.
Escape character is '^]'.
但是当我在新节点上启动cassandra时,会看到以下异常:
But when I start cassandra on the new node I see the following exception:
INFO 00:01:34,744 Handshaking version with /10.10.1.94
ERROR 00:02:05,733 Exception encountered during startup
java.lang.RuntimeException: Unable to gossip with any seeds
at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1193)
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:447)
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:656)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:612)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:505)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:362)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:480)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:569)
java.lang.RuntimeException: Unable to gossip with any seeds
at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1193)
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:447)
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:656)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:612)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:505)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:362)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:480)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:569)
Exception encountered during startup: Unable to gossip with any seeds
ERROR 00:02:05,742 Exception in thread Thread[StorageServiceShutdownHook,5,main]
java.lang.NullPointerException
at org.apache.cassandra.gms.Gossiper.stop(Gossiper.java:1270)
at org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:573)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
at java.lang.Thread.run(Thread.java:745)
我在两个节点上都使用murmur3分区,并且列出了种子节点的IP在新节点的cassandra.yaml中。我只是想知道问题可能是什么以及如何解决它。
I'm using the murmur3 partition on both nodes and I have the seed node's IP listed in the cassandra.yaml of the new node. I'm just wondering what the issue might be and how I can get around it.
推荐答案
好了,花了整整一天的时间在这一点上,我最终在freenode上找到了#cassandra IRC频道。 (这是我的第一个建议,要定期去那里)。
Ok, after spending a whole day at this, I eventually found the #cassandra IRC channel on freenode. (that's my first advice, go there, regularly)
您遇到的问题很可能是(在我的情况下)是所谓的鸡和鸡鸡蛋的问题。鸡肉和鸡蛋:
节点1:seeds = node2
节点2:seeds = node1
The issue that you're experiencing is most likely (and was, in my case) what's called a 'chicken and the egg' problem. Chicken and the egg: Node 1: seeds=node2 Node 2: seeds=node1
这两个节点都无法正常启动,因为没有种子
Neither node can boot properly, because there's no seed node that's fully booted at.. boot time.
要解决此问题,只需设置:
节点1:种子= node1,node2
节点2 :种子= node2。
To solve this, just set: Node 1: seeds = node1,node2 Node 2: seeds = node2.
现在,node1将启动。
Node 2最终也会启动。.
Now, node1 will boot. Node 2 will eventually boot as well..
Voila。
这篇关于新的cassandra节点无法与种子八卦的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!