2013-05-02 8 views
12

Avevo un cluster cassandra a 3 nodi con fattore di replicazione di 2. I nodi stavano eseguendo dsc1.2.3 o dsc1.2.4. Ogni nodo aveva il valore num_token di 256 e initial_token era commentato. Questo cluster a 3 nodi era perfettamente bilanciato, ciascuno possedeva circa il 30% dei dati.come riequilibrare il cluster di cassandra dopo l'aggiunta del nuovo nodo

Uno dei nodi si è arrestato in modo anomalo così ho avviato un nuovo nodo e nodetool ha rimosso il nodo che si era bloccato. Il nuovo nodo è stato aggiunto al cluster, ma i due nodi più vecchi hanno ora la maggior parte dei dati (47,0% e 52,3%) e il nuovo nodo ha solo lo 0,7% dei dati.

L'uscita di stato nodetool è

Datacenter: xx-xxxx 
=================== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address   Load  Tokens Owns Host ID        Rack 
UN 10.xxx.xxx.xxx 649.78 MB 256  47.0% ba3534b3-3d9f-4db7-844d-39a8f98618f1 1c 
UN 10.xxx.xxx.xxx 643.11 MB 256  52.3% 562f7c3f-986a-4ba6-bfda-22a10e384960 1a 
UN 10.xxx.xxx.xxx 6.84 MB 256  0.7% 5ba6aff7-79d2-4d62-b5b0-c5c67f1e1791 1c 

Come faccio a bilanciare questo gruppo?

+0

È possibile includere l'output di "stato nodetool"? – Richard

+0

Hai iniziato il nuovo nodo con num_tokens = 256 troppo? – Richard

+0

Modificato il post per l'output aggiunto di 'stato nodetool' – user2341900

risposta

6

Non hai menzionato l'esecuzione di una riparazione sul nuovo nodo, se davvero non lo hai ancora fatto è probabilmente la causa della tua mancanza di dati sul nuovo nodo.

Fino a quando non si esegue una riparazione di nodetool il nuovo nodo manterrà solo i nuovi dati che vengono scritti su di esso oi dati su cui è in corso la riparazione della correzione. Con i vnodes generalmente non dovrebbe essere necessario riequilibrare, se io Capisco correttamente i vnodi, ma non mi sono ancora spostato personalmente sull'uso dei vnode, quindi potrei sbagliarmi.

4

Sembra che il nuovo nodo non sia stato riavviato. Hai aggiunto auto_bootstrap=true al tuo cassandra.yaml?

Se non si desidera eseguire il bootstrap, è possibile eseguire nodetool repair sul nuovo nodo e quindi nodetool cleanup sugli altri due fino a quando la distribuzione non è corretta.

Problemi correlati