Respostas:
Ao examinar a documentação, estou tendo dificuldade em encontrar uma referência para isso, mas a resposta curta é "sim", você precisa executar nodetool repair em cada nó do cluster. O mais próximo que posso encontrar é a documentação sobre o reparo de nós, que sugere que você não deve executar o reparo em mais de um nó no cluster por vez.
Você também pode executar o reparo com o -prsinalizador, o que limita a operação de reparo ao primeiro intervalo de tokens pelo qual o nó atual é responsável. Isso reduz a duplicação de trabalho quando executada nos nós restantes.
-prem todos os nós, ele cobrirá todo o (s) espaço (s) de chaves.
-prsinalizador.
Como ele se comporta depende da sua configuração, qual versão do Cassandra você usa e como você executa o comando de reparo.
Se você apenas executar nodetool repairem um único nó em um cluster, ele reparará todos os dados (intervalos de token) pelos quais o nó é responsável e também os outros nós responsáveis por esses dados.
Por exemplo, se você executasse o nodetool repair comando em um único nó em um determinado cluster:
Dito isso, é possível definir quais hosts e datacenters executar reparos no uso dos sinalizadores -hostse -dc. Além disso, se você usar o -prsinalizador (que selecionará apenas o primeiro intervalo de tokens pelo qual o nó é responsável), será necessário executar nodetool repair -prem todos os nós no cluster.
Outra bandeira a ter em mente é a -incbandeira, que foi incluída no Cassandra 2.1. Esta opção irá reparar apenas novos dados (dados que não foram reparados anteriormente). Tenha cuidado ao confiar nisso, especialmente se você excluir dados com freqüência. ( mais sobre isso )
Outra coisa a ter em mente é que a maneira padrão de reparo no Cassandra pode variar. A partir do Cassandra 2.1, quando executado, nodetool repairele executa um reparo seqüencial completo por padrão. Você deseja pesquisar o que sua versão faz.
Para mais informações sobre o tópico:
Não, você não precisa executar em cada nó individual. nodetool repairé executado no conjunto de nós, que está claramente indicado na documentação .
Você pode limitar os nós ou parte dos dados nos quais deseja executar o reparo. Por exemplo, você pode fornecer a -propção para o intervalo do particionador, intervalo pelo qual o nó é responsável, mas isso terá que ser executado em todo o cluster. Mas se você escolher -local, os nós no datacenter local do nó serão reparados.
nodetool repairem um único nó não é suficiente para reparar todos os dados replicados em todos os nós em todas as configurações. A execução nodetool repairem um único nó reparará apenas os dados replicados nesse nó. (A adição da -propção limita o reparo aos dados para os quais esse nó é a primeira réplica.) Mas se você tiver dados em seu cluster que não são replicados nesse nó, será necessário executar nodetool repairem nós adicionais.
-prem todos os nós, isso cobrirá todo o espaço de chave?