Как периодически восстанавливать кластер, -local или -pr один за другим - PullRequest
0 голосов
/ 14 сентября 2018

Я запутался в том, как восстановить кластер Cassandra.
Команда ниже восстанавливает все узлы локального центра обработки данных?
nodetool repair -local -j 4
Итак, мне не нужно запускать nodetool repair -pr -j 4 на всех узлах одинодним?

1 Ответ

0 голосов
/ 14 сентября 2018

Запуск nodetool repair на одном узле делает следующее: Узел восстанавливает все данные, которые он хранит, связываясь с другими узлами, которые также отвечают за эти данные. Он не восстанавливает данные, за которые этот узел не отвечает.

Очень простой пример без vnodes:

Предположим, у вас есть три узла (A, B и C), и ваша самая низкая репликация - два. Если вы выполните восстановление на A, оно выполнит восстановление данных, которые имеют общие для A и B, а также данных, которые имеют общие для A и C. Однако он не восстановит данные, которые хранятся только на B и C.

В этом примере выполнение восстановления на двух узлах гарантирует, что вы все исправили.

Флаги -pr и -local

Флаг -pr еще больше меняет это поведение. Вместо ремонта АБ и АС. Вы восстанавливаете только те данные, за которые A несет основную ответственность. В этом случае вам нужно отремонтировать B и C отдельно. Это гарантирует, что вы не восстановите одни и те же данные дважды.

-local гарантирует, что ремонт восстанавливает только узлы в одном и том же центре данных. B находился в другом центре обработки данных, он будет игнорироваться для целей ремонта.

Я бы рекомендовал запускать -pr на каждом узле по одному. Это позволит избежать многократного восстановления одних и тех же данных и разбить их на более мелкие перевариваемые куски.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...