2017-09-15 3 views
0

Ich habe 4 Knoten Cassandra-Cluster. davon sind 2 oben, aber 2 sind unten. Wenn ich sie starte, kommen sie sofort runter. wenn ich service cassandra status CHECK Ich erhalte could not access pidfile for cassandra und in system.log Datei, der Fehler ist:Cassandra-Knoten nicht gestartet

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 
+1

Welche Version verwenden Sie? – Mandraenke

+1

die Version ist 3.10 – Vish

+0

Können Sie bitte einen 'bin/nodetool status' Befehl auf einem laufenden Knoten ausführen und das Ergebnis einfügen? Markieren Sie auch den Knoten, der die NullPointerException oben ausgelöst hat. – Oresztesz

Antwort

0

Von Quellcode Gossiper (link), ich vermute, dass die Knoten in boostrapping stecken Phase. Andere Knoten sehen sie als bereits bootstrapped, aber sie konnten den Beitritt zum Cluster nicht beenden.

Es könnte helfen, die festgefahrenen Knoten zwangsweise aus dem Cluster zu entfernen, indem Sie nodetool removenode in einer anderen Instanz verwenden, die booten konnte. Danach sollten Sie die Daten der festgefahrenen Instanzen bereinigen, indem Sie das Verzeichnis data (unter oder unter system folder, wenn Sie vom Betriebssystempaket installiert haben) löschen und die Instanzen nacheinander starten.

Wenn Sie den gossipinfo und Status des Clusters zu senden, könnte es helfen, herauszufinden, was das eigentliche Problem ist.

Für weitere Referenz see official guide

+0

Danke Oresztesz. Ich habe das gleiche getan, aber nicht die Option removenkode. Stattdessen entfernte ich die Startwerte aus der Datei cassandra.yaml und startete Cassandra neu, um zu überprüfen, ob sie ordnungsgemäß außerhalb des Clusters ausgeführt wurde. und es lief gut. Dann habe ich die Samen wieder in die Datei cassandra.yaml eingefügt. und die Cassandra neu gestartet, dann funktioniert es auch im Cluster. Eine Sache, die ich in system.log sah, ist, dass es ein Protokoll gibt, das "Topologieinformationen für diesen Knoten aktualisiert". Ich verstehe immer noch nicht genau, was das Problem war, aber es funktioniert jetzt für mich. – Vish