我有4个节点的cassandra集群。其中2个上升,但2个下降。
当我开始他们时他们立即下来。
当我使用service cassandra status
检查时
我得到could not access pidfile for cassandra
在system.log文件中,错误是:
ERROR [main] 2017-09-15 15:44:46,277 CassandraDaemon.java:752 - Exception encountered during startup
java.lang.NullPointerException: null
at org.apache.cassandra.gms.Gossiper.isSafeForStartup(Gossiper.java:756) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:553) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:800) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:666) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:612) ~[apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:394) [apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:601) [apache-cassandra-3.10.jar:3.10]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:735) [apache-cassandra-3.10.jar:3.10]
INFO [StorageServiceShutdownHook] 2017-09-15 15:44:46,281 HintsService.java:221 - Paused hints dispatch
INFO [StorageServiceShutdownHook] 2017-09-15 15:44:46,282 Gossiper.java:1506 - Announcing shutdown
答案 0 :(得分:0)
从Gossiper
(link)的源代码,我怀疑您的节点处于 boostrapping 阶段。其他节点将它们视为已经引导,但是它们无法完成加入群集。
通过在任何其他能够启动的实例中使用nodetool removenode
,可以帮助强制从群集中删除卡住的节点。
之后,您应该通过擦除data
目录(位于data/
或system folder下,如果您从OS软件包安装)清除卡住实例上的数据,并逐个启动实例之一。
如果您发送群集的 gossipinfo 和状态,则可能有助于找出真正的问题。
进一步参考see official guide
答案 1 :(得分:0)
一个原因可能是IP地址/种子配置错误:
仔细检查群集名称,其cassandra.yaml文件中所有节点上的种子均相同,并且所有IP地址均正确。