1

Ich habe ein 3-Knoten-Cassandra-Cluster-Setup (Replikation auf 2 gesetzt) ​​mit Solr installiert, jeder Knoten hat RHEL, 32 GB Ram, 1 TB HDD und DSE 4.8.3. Es gibt viele Schreibvorgänge auf meinen Knoten und auch meine Webanwendung liest von meinen Knoten.Cassandra-Knoten gehen nach unten

  1. Ich habe beobachtet, dass alle Knoten alle 3-4 Tage nach unten gehen. Ich muss einen Neustart von jedem Knoten machen und dann funktionieren sie ziemlich gut bis zu den nächsten 3-4 Tagen und wieder wiederholt sich das gleiche Problem. Ich überprüfte die Serverprotokolle, aber sie zeigen keinen Fehler, selbst wenn der Server ausfällt. Ich kann nicht herausfinden, warum das passiert. manchmal
  2. In meiner Anwendung, wenn ich an die Knoten durch die C# Cassandra Treiber verbinden, erhalte ich die folgenden Fehler

    Cassandra.NoHostAvailableException: Keine der Abfrage versuchen Hosts zur Verfügung (versucht: ‚Knoten-ip ': 9042) bei Cassandra.Tasks.TaskHelper.WaitToComplete (Task-Task, Int32-Timeout) bei Cassandra.Tasks.TaskHelper.WaitToComplete [T] (Task'`1 Task, Int32-Timeout) bei Cassandra.ControlConnection.Init() bei Cassandra .Cluster.Init() `

Aber wenn ich die OpsCenter überprüfen, keiner der Knoten sind unten. Der Status aller Knoten ist vollkommen in Ordnung. Könnte das ein Problem mit dem Fahrer sein? Früher habe ich Cassandra C# -Treiber Version 2.5.0 von nugget installiert, aber jetzt habe ich sogar das auf Version 3.0.3 aktualisiert, aber diese Fehler bleiben bestehen.

Jede Hilfe zu diesem Thema wäre willkommen. Danke im Voraus.

+0

Haben Sie in '/ var/log/cassandra/system.log' nachgeschaut, warum die Knoten ausgefallen sind? Es kann OutOfMemory-Ausnahme oder lange GC-Sammlung sein – doanduyhai

+0

Ya ich überprüft diese Protokolle während des Knotens, sie hatten nichts als Fehler in den Protokollen markiert, obwohl es viele Info-Protokolle, die sagen, unerwartete Ausnahme während der Anfrage; channel = [....] java.io.IOException: Fehler beim Lesen (....): Verbindung von Peer zurückgesetzt – Hitesh

+0

Kann man den kompletten Stack-Trace irgendwo einfügen? Und wenn es ein Netzwerkverbindungsfehler ist, sollten Sie vielleicht in die Datei system.log des Ursprungsservers schauen, von dem der Fehler kommt – doanduyhai

Antwort

0

Wenn Sie dies noch nicht getan haben, können Sie bei der Einrichtung Ihres Protokolliergrade durch Lauf auf Standard aussehen wollen: nodetool -h 192.168.XXX.XXX setlogginglevel org.apache.cassandra DEBUG auf allen Knoten

Ihre erste Ausgabe ist höchstwahrscheinlich eine OutOfMemory Ausnahme.

Für Ihr zweites Problem ist das Problem wahrscheinlich, dass Sie wirklich lange GC-Pausen haben. Tailing /var/log/cassandra/debug.log oder /var/log/cassandra/system.log kann Ihnen einen Hinweis geben, aber in der Regel zeigt das Problem nicht, es sei denn, Sie sind sorgfältig auf die Zeitstempel. Der beste Weg, dies zu beheben ist es, Sie GC Protokollierung in Ihrer jvm.options Config aktiviert, um sicherzustellen, haben und dann Schwanz Ihrer Protokolle gc Kenntnis der Pausenzeiten unter:

grep 'Total time for which application threads were stopped:' /var/log/cassandra/gc.log.1 | less

Der Unexpected exception during request; channel = [....] java.io.IOException: Error while read (....): Connection reset by peer Fehler sind in der Regel zwischen den Knoten Zeitüberschreitungen. h. der Koordinator wartet das Warten auf eine Antwort von einem anderen Knoten ab und sendet ein TCP-RST-Paket, um die Verbindung zu schließen.