2016-06-03 15 views
0

Wir haben einen Cluster mit 6 Knoten in Datencentern (jeweils 3 Knoten). Wir beginnen eine Reparatur auf einem Knoten und kurz anschliessend wir so etwas wie dies in den Protokollen finden:Cassandra 3 Reparatur beendet nie

ERROR [Repair#1:1] 2016-05-31 01:33:28,075 CassandraDaemon.java:195 -  Exception in thread Thread[Repair#1:1,5,RMI Runtime] 
com.google.common.util.concurrent.UncheckedExecutionException: org.apache.cassandra.exceptions.RepairException: [repair #e8e21070-26be-11e6-aae8-77b20cefeee5 on ..... Validation failed in /xx.xxx.xx.xx 
    at com.google.common.util.concurrent.Futures.wrapAndThrowUnchecked(Futures.java:1525) ~[guava-18.0.jar:na] 
    at com.google.common.util.concurrent.Futures.getUnchecked(Futures.java:1511) ~[guava-18.0.jar:na] 
    at org.apache.cassandra.repair.RepairJob.run(RepairJob.java:162) ~[apache-cassandra-3.0.4.jar:3.0.4] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_77] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_77] 
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_77] 

Afterwords nichts scheint mehr zu passieren. Wir haben die Reparatur für mehrere Tage nicht unterbrochen, aber trotzdem passiert nichts. Wir haben es auch auf zwei verschiedenen Clustern mit dem gleichen Ergebnis versucht.

Nach der Suche im Internet stolperten wir auf https://support.datastax.com/hc/en-us/articles/205256895--Validation-failed-when-running-a-nodetool-repair. Es sagt, dass wir "nodetool scrub" ausführen sollten und wenn es "stablescrub" nicht hilft.

Wir haben versucht das nodetool Scrub, aber die Reparatur funktioniert immer noch nicht. Wir haben jetzt ein stablescrub gestartet, aber es scheint ewig zu dauern. Es verwendet nur eine CPU bei 100% und die Daten- und Indexdatei wächst, aber es läuft jetzt für mehr als einen Tag und die Datei hat jetzt nur eine Größe von 1,2 GB.

Ist es normal, dass "stablescrub" so langsam ist?

Der Cluster läuft bereits seit einiger Zeit und wir haben die GCGraceSeconds für die Reparatur verpasst. Könnte das zu der nicht funktionierenden Reparatur führen?

Wir wissen derzeit nicht, wie man die Reparatur läuft, hoffe jemand kann helfen.

+0

Haben Sie die genaue Datei sstable identifiziert, die beschädigt ist und die Reparatur fehlschlägt? –

+0

Leider haben wir das genaue sstable nicht gefunden. –

Antwort

0

Die Ausnahme zeigt an, dass der Knoten die Ergebnisse der Merkle-Tree-Berechnung, die unter /xx.xxx.xx.xx passieren sollte, nicht empfangen konnte. Bitte überprüfen Sie stattdessen die Protokolle für diesen Knoten. Der Knoten, mit dem Sie den Reparaturlauf gestartet haben, ist wahrscheinlich in Ordnung und erfordert kein stabiles Scrubbing.

+0

Auf dem anderen Knoten bekomme ich die Nachricht: java.lang.RuntimeException: Kann nicht mehrere Reparatursitzungen über die gleichen stables starten Obwohl es nur eine Reparatur läuft. Auf jedem der anderen Knoten wird ein Reparaturvorgang gestartet. –

+0

Sie könnten möglicherweise von [CASSANDRA-11824] betroffen sein (https://issues.apache.org/jira/browse/CASSANDRA-11824) –