2017-01-03 7 views
1

Узел Apache Cassandra работает в кластере из 3 узлов с коэффициентом репликации 3. Все конфигурации правильные. Версия Cassandra - 2.1.8.Как восстановить узел Кассандры потоком из семенного узла?

Предположим, что данные логически повреждены без ремонта, что означает, что они не могут быть восстановлены обычными инструментами (скраб/ремонт).

Узел в нормальном состоянии.

Учитывая сценарий восстановления узла в потоковом от узла семян, который зарегистрирован в cassandra.yaml (а не заменяя узел с другой):

  1. Что произойдет, если удалить данные верхнего уровня каталог на этом узле, в том числе файлы commitlog, данные, подсказки и save_caches и запустить службу? Будет ли узел изящно возобновляться с этой точки, и я мог бы просто запустить ремонт nodetool, чтобы получить самые старые данные в узле?

  2. Если вместо этого я запустил службу и запустил nodetool rebuild было бы уместно и достаточно, чтобы исправить проблему?

  3. Если ни одно из вышеперечисленных методов не является наилучшим, было бы решением вывести из эксплуатации узел и снова включить его в кластер?

ответ

2

Вам повезет больше Вывод из эксплуатации узел, вытирают его (данные, commitlog, & saved_caches DIRS), указав его IP-адрес в качестве замены в cassandra-env.sh и Воссоединение это к кластеру.

nodetool rebuild полезен, когда у вас несколько центров обработки данных, и вы хотите, чтобы потоки поступали от определенного постоянного тока.

nodetool repair будет технически работать (отвечая «да» на # 1), но вы потратите много времени, ожидая вычисления деревьев Меркле. Ремонт хорош еженедельно, и они отлично подходят для устранения незначительных несоответствий. Но после определенного момента, сравнивая с обнаружением различий (деревья Merkle) и восстанавливая их, происходит медленнее, чем просто разложение/повторение узла.