2

Je souhaite mettre hors service un noeud cassandra car ce noeud nécessite une mise à niveau du système d'exploitation.Cassandra nodetool decommission

Je me connecte à ce noeud. Exécutez la commande hors service et après quelques minutes, je reçois cette exception sur la console

nodetool decommission 

error: Stream failed 
-- StackTrace -- 
org.apache.cassandra.streaming.StreamException: Stream failed 
    at org.apache.cassandra.streaming.management.StreamEventJMXNotifier.onFailure(StreamEventJMXNotifier.java:85) 
    at com.google.common.util.concurrent.Futures$4.run(Futures.java:1172) 
    at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) 
    at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) 
    at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) 
    at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202) 
    at org.apache.cassandra.streaming.StreamResultFuture.maybeComplete(StreamResultFuture.java:208) 
    at org.apache.cassandra.streaming.StreamResultFuture.handleSessionComplete(StreamResultFuture.java:184) 
    at org.apache.cassandra.streaming.StreamSession.closeSession(StreamSession.java:412) 
    at org.apache.cassandra.streaming.StreamSession.onError(StreamSession.java:507) 
    at org.apache.cassandra.streaming.StreamSession.start(StreamSession.java:229) 
    at org.apache.cassandra.streaming.StreamCoordinator$StreamSessionConnector.run(StreamCoordinator.java:208) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

Je ne suis pas sûr de ce que cette exception signifie, j'ai l'intention de vérifier si la mise hors service est réussie par netstats nodetool et état de nodetool sortie whoose est inférieure à. Dans les deux endroits, il est dit QUITTE, comment puis-je confirmer si c'est complet.

nodetool netstats 
Mode: LEAVING 
Not sending any streams. 
Read Repair Statistics: 
Attempted: 1 
Mismatch (Blocking): 0 
Mismatch (Background): 0 
Pool Name     Active Pending  Completed 
Commands      n/a   0    26 
Responses      n/a   0   758780 

nodetool status 
Datacenter: DC1 
=============== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address  Load  Tokens Owns Host ID        Rack 
UL x.x.x.x 1.02 MB 256  ?  377869a9-d01c-4b7d-a24c-dbb90afee3d8 RAC1 

Ma version de cassandra est 2.1.8. Trouvé un bug de référence https://issues.apache.org/jira/browse/CASSANDRA-10371 qui dit que cela pourrait prendre 72 heures pour que les changements reflètent.

Dois-je assassinate the node comme mentionné dans le Removing a node doc

Répondre

3

Si vous ne voyez pas le nœud nodetool status, alors son confirmé que son terminé. Sinon, vous pouvez essayer nodetool removenode pour supprimer le nœud du cluster. nodetool assassinate est la dernière option pour supprimer le nœud du cluster. Si nodetool removenode n'a pas réussi à supprimer le noeud du cluster, nous utilisons nodetool assassinate pour supprimer le noeud.

erreur Problème: Pour voir plus de détails sur cette erreur, cat /install_directory/apache-cassandra-2.1.8/logs/system.log | grep ERROR

Votre noeud n'a pas flux de données avec d'autres nœuds. Ce type de problème survient pour plusieurs raisons, par exemple: users process limit (nproc). Trouvez plus de détails sur votre problème pour connaître la raison de votre erreur.

+0

Merci beaucoup. Il a aidé à déboguer après avoir regardé dans system.log. L'un des noeuds du cluster était celui sur lequel le flux a échoué. –