2014-09-19 11 views
6

Ho un piccolo cluster praticamente vuoto. Solitamente nodetool removenode termina nell'ordine di 10 secondi. Tuttavia, al momento ho una rimozione del nodo in corso che richiede 10 minuti e sembra che non abbia alcun progresso. Un'ulteriore richiesta di rimozione del nodo viene rifiutata perché è già in corso una rimozione. Come posso risolvere questo? Per riferimento, qui è l'uscita a nodetool status:nodetool removenode bloccato durante la rimozione

Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address   Load  Tokens Owns Host ID        Rack 
DL 192.168.12.207 152.14 KB 256  32.2% 683d8351-c625-4d7f-99cc-61f6b73b0c56 rack1 
UN 192.168.12.205 215.21 KB 256  37.2% b66d5fff-ef1d-4fbf-a49a-43709df99a0c rack1 
UN 192.168.12.208 148.09 KB 256  30.6% 39b54771-59b8-49f7-8db8-9cf4523d6c8d rack1 

Inoltre, Cassandra non è in esecuzione su un host 207 (l'host partenza), ma è in esecuzione sugli altri due host.

EDIT: Sembra che ci sia almeno un token che è bloccato in attesa di replica:

$ nodetool removenode status 
RemovalStatus: Removing token (-9037887679483580088). Waiting for replication confirmation from [/192.168.12.205]. 
+0

Hai eseguito prima una riparazione di nodetool? –

+0

No, non è opzionale? Questo ha funzionato molte volte in passato, nonostante non avessi eseguito la riparazione di nodetool senza incorrere in questo problema. Perché ciò comporterebbe un fallimento sporadico? – jonderry

+0

BTW, queste [istruzioni] (http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_remove_node_t.html), che suggeriscono di eseguire 'repair' seguito da' decommission', seguito da 'removenode' , sembra sbagliato. L'esecuzione di 'nodetool decommission' stessa sembra rimuovere il nodo, lasciando il' removenode' moot. Avevo scelto di utilizzare una sequenza diversa di passaggi che comportava solo l'esecuzione di 'removenode', che richiede anche il primo deposito di cassandra sulla macchina. – jonderry

risposta

7

non si sa quale versione di Cassandra è la uno con il problema. Ma, se nodetool removeNode non funziona, secondo il Apache Cassandra Wiki, si dovrebbe provare il seguente:

removeNode

rimozione di un nodo che non fisicamente esiste più è fatto in due fasi:

bin/nodetool removenode <UUID> 

    bin/nodetool removenode force 

il primo comando bloccherà per sempre se il computer collegato a quella UUID è stato rimosso fisicamente (oppure non funziona più Cassandra). Basta fare clic su Ctrl-C dopo un secondo o due prima di eseguire il secondo comando. Ovviamente, è meglio rimuovere prima un nodo, se possibile oppure potresti perdere alcuni dei tuoi dati.

Il comando "stato bin/nodetool" mostra l'UUID dei nodi.

Spero che sia d'aiuto.

Problemi correlati