Вам нужно работать nodetool repair
на каждом узле в кластере, или вам нужно только запустить его на одном узле, а оттуда Кассандра позаботится обо всем остальном?
maintenance
cassandra
2rs2ts
источник
источник
-pr
каждым узлом, охватит ли это все пространство ключей?-pr
на каждом узле, он охватит все пространство ключей.-pr
флага.Как это ведет себя, зависит от вашей конфигурации, какую версию Cassandra вы используете и как вы запускаете команду восстановления.
Если вы просто запустите
nodetool repair
один узел в кластере, он восстановит все данные (диапазоны токенов), за которые отвечает этот узел, а также другие узлы, которые отвечают за эти данные.Например, если вам нужно было запустить
nodetool repair
команду на одном узле в данном кластере:Тем не менее, можно определить , какие узлы и центры обработки данных для выполнения ремонтных работ на использование
-hosts
и-dc
флагов. Кроме того, если вы используете-pr
флаг (который выберет только первый диапазон токенов, за который отвечает узел), вам придется работатьnodetool repair -pr
на всех узлах кластера.Еще один флаг, о котором следует помнить, это
-inc
флаг, который был включен в Cassandra 2.1. Эта опция восстанавливает только новые данные (данные, которые ранее не были восстановлены). Будьте осторожны, полагаясь на это, особенно если вы часто удаляете данные. ( подробнее об этом )Следует также помнить, что стандартные способы ремонта в Кассандре могут различаться. Начиная с Cassandra 2.1 при запуске
nodetool repair
он выполняет полное последовательное восстановление по умолчанию. Вы хотите посмотреть, что делает ваша версия.Для получения дополнительной информации по теме:
https://www.datastax.com/dev/blog/repair-in-cassandra
источник
Нет, вам не нужно работать на каждом отдельном узле.
nodetool repair
работает на множестве узлов, что четко указано в документации .Вы можете ограничить узлы или часть данных, на которых вы хотите выполнить восстановление. Например, вы можете предоставить
-pr
опцию для диапазона разделителя, диапазона, за который отвечает узел, но это должно выполняться на всем кластере. Но если вы выбрали-local
, то узлы в локальном центре данных узла будут восстановлены.источник
nodetool repair
на одном узле недостаточно для восстановления всех реплицированных данных на всех узлах во всех конфигурациях. Работаnodetool repair
на одном узле будет восстанавливать только данные, реплицированные на этом узле. (Добавление этой-pr
опции ограничивает восстановление данных, для которых этот узел является первой репликой.) Но если в вашем кластере есть данные, которые не реплицированы на этом узле, то вы должны работатьnodetool repair
на дополнительных узлах.