2016-06-03 14 views
0

У нас есть кластер с 6 узлами в датацентрах (по 3 узла). Мы начинаем ремонт на одном узле и вскоре послесловие мы можем найти что-то подобное в журналах:Cassandra 3 Repair никогда не заканчивается

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 ничего не кажется, происходит больше. Мы не прерывали ремонт в течение нескольких дней, но до сих пор ничего не происходит. Мы также пробовали это на двух разных кластерах с тем же результатом.

После поиска в Интернете мы наткнулись на https://support.datastax.com/hc/en-us/articles/205256895--Validation-failed-when-running-a-nodetool-repair. В нем говорится, что мы должны запустить «nodetool scrub», и если это не поможет «sstablescrub».

Мы попробовали кустарник nodetool, но ремонт все еще не работает. Теперь мы запустили sstablescrub, но, похоже, навсегда. Он использует только один процессор на 100%, а файл данных и индексов растет, но теперь он работает более одного дня, и теперь размер файла составляет всего 1,2 ГБ.

Нормально ли, что «sstablescrub» настолько медленный?

Кластер уже работает в течение некоторого времени, и мы пропустили GCGraceSeconds для ремонта. Может ли это привести к неработоспособному ремонту?

В настоящее время мы не знаем, как получить ремонт, надеясь, что кто-то может помочь.

+0

Вы идентифицировали точный файл sstable, который был поврежден и вызвал сбой ремонта? –

+0

К сожалению, мы не нашли точного sstable. –

ответ

0

Что указывает исключение, так это то, что узел не смог получить результаты вычисления дерева merkle, которое должно было произойти на /xx.xxx.xx.xx. Проверьте журналы для этого узла. Узел, на котором запущен ремонт, вероятен и не требует очистки sstable.

+0

На другом узле я получаю сообщение: java.lang.RuntimeException: не удается запустить несколько сеансов ремонта по тем же самым sstables Хотя это только один ремонт. На любом из других узлов запущен процесс восстановления. –

+0

На вас может повлиять [CASSANDRA-11824] (https://issues.apache.org/jira/browse/CASSANDRA-11824) –