Восстанавливает ли команда восстановления инструмента узла все узлы в кластере или восстанавливает один узел, на котором выполняется команда? - PullRequest
1 голос
/ 27 марта 2019

Согласно документации datastrax (последняя версия) для восстановления nodetool

Все параметры команды восстановления nodetool являются необязательными.Если необязательные аргументы команды не указаны, значения по умолчанию:

  • Полное восстановление выполняется для всех пространств ключей и всех таблиц.
  • Восстановление выполняется параллельно на всех узлах с одинаковыми данными реплики вв то же время.
  • Количество потоков заданий равно 1.
  • Нет трассировки.Нет проверки.

Но согласно онлайн-курсу на https://academy.datastax.com, в котором упоминается, что нам нужно запускать команду восстановления nodetool индивидуально на каждом узле.

Ниже приведена ссылка на видео: Перейти к 3:44

https://academy.datastax.com/units/21018-repair-dse-operations-apache-cassandra?resource=ds210-datastax-enterprise-6-operations-with-apache-cassandra

Я запутался в погоде. Команда "nodetool repair" восстанавливает все узлы вкластер или восстановить только один узел, на котором выполняется команда?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Допустим, у нас есть кластер из трех узлов, коэффициент репликации 2, и стратегия репликации - SimpleStrategy. Node1 будет иметь данные Node1, а также реплику Node2. Node2 будет иметь данные Node2, а также реплику Node3. Node3 будет иметь данные Node3, а также реплику Node1.

Теперь, если вы запускаете восстановление nodetool на Node1. Так как по умолчанию полный ремонт. Исправлены следующие данные:

1) Данные Node1 в Node1

2) Реплика узла 1 в узле 3

3) Реплика Node2 в Node1

4) Данные Node2 в Node2

В этом случае данные или реплика Node3 не восстанавливаются. Поэтому восстановление NotoToL должно выполняться на узле 3 для восстановления всего кластера.

В видео от 3:44 он говорит о --partitioner-range, что означает, что восстанавливается только основной раздел. Так что в приведенном выше кластере, если вы запускаете восстановление nodetool --partitioner-range на Node1, тогда

1) Данные Node1 в Node1

2) Реплика узла 1 в узле 3

В этом случае восстановление nodetool --partitioner-range должно выполняться на всех затем узлах.

0 голосов
/ 27 марта 2019

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

http://cassandra.apache.org/doc/latest/operating/repair.html

https://docs.datastax.com/en/archived/cassandra/2.2/cassandra/operations/opsRepairNodesWhen.html

...