2016-01-01 2 views
0

J'ai une grappe de cassandra dans aws ec2. le cluster a maintenant 7 nœuds. et je veux ajouter un nouveau noeud à ce cluster. mais il y a une erreur avec bootstrap. le bootstrap ne peut pas finir avec succès.cassandra bootstrap échoue avec "Erreur de streaming s'est produite"

je suis arrivé de nombreux types d'erreurs:

ERROR [STREAM-IN-/172.31.20.223] 2016-01-01 15:37:30,941 StreamSession.java:524 - [Stream #b1cc3600-b054-11e5-80c4-21d1c7c11a01] Streaming error occurred: 
java.nio.channels.ClosedChannelException: null 
     at sun.nio.ch.SocketChannelImpl.ensureReadOpen(SocketChannelImpl.java:257) ~[na:1.8.0_66] 
     at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:300) ~[na:1.8.0_66] 
     at org.apache.cassandra.streaming.messages.StreamMessage.deserialize(StreamMessage.java:53) ~[apache-cassandra-2.2.4.jar:2.2.4] 

aussi erreur comme ceci:

WARN [STREAM-IN-/172.31.20.223] 2016-01-01 15:37:30,941 StreamSession.java:644 - [Stream #b1cc3600-b054-11e5-80 
c4-21d1c7c11a01] Retrying for following error 
java.lang.RuntimeException: Last written key DecoratedKey(-8466153190082758358, 000000000000356a) >= current key 
DecoratedKey(-9223372036854775808,) writing into /data_lvm/cassandra/data/feeds/inbox-eb873af0a19711e5ade0432b 
31304f95/tmp-la-309-big-Data.db 

aussi des erreurs comme celle-ci:

WARN [STREAM-IN-/172.31.8.188] 2016-01-01 15:25:05,001 StreamSession.java:644 - [Stream #b1cc3600-b054-11e5-80c4-21d1c7c11a01] Retrying for following error 
java.lang.IllegalArgumentException: Not enough bytes 
     at org.apache.cassandra.db.composites.AbstractCType.checkRemaining(AbstractCType.java:362) ~[apache-cassandra-2.2.4.jar:2.2.4] 
     at org.apache.cassandra.db.composites.AbstractCompoundCellNameType.fromByteBuffer(AbstractCompoundCellNa 
meType.java:98) ~[apache-cassandra-2.2.4.jar:2.2.4] 
     at org.apache.cassandra.db.composites.AbstractCType$Serializer.deserialize(AbstractCType.java:381) ~[apache-cassandra-2.2.4.jar:2.2.4] 

et aussi erros comme ceci:

WARN [STREAM-IN-/172.31.4.135] 2016-01-01 15:23:44,228 StreamSession.java:644 - [Stream #b1cc3600-b054-11e5-80c 
4-21d1c7c11a01] Retrying for following error 
java.lang.ArrayIndexOutOfBoundsException: null 
ERROR [Thread-571] 2016-01-01 15:23:44,228 CassandraDaemon.java:185 - Exception in thread Thread[Thread-571,5,ma 
in] 
java.lang.RuntimeException: java.lang.InterruptedException 
     at com.google.common.base.Throwables.propagate(Throwables.java:160) ~[guava-16.0.jar:na] 
     at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:32) ~[apache-cassandra-2.2.4.jar: 
2.2.4] 
     at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66] 
Caused by: java.lang.InterruptedException: null 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer 
.java:1220) ~[na:1.8.0_66] 
     at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335) ~[na:1.8.0_66] 
     at java.util.concurrent.ArrayBlockingQueue.put(ArrayBlockingQueue.java:350) ~[na:1.8.0_66] 
     at org.apache.cassandra.streaming.compress.CompressedInputStream$Reader.runMayThrow(CompressedInputStrea 
m.java:176) ~[apache-cassandra-2.2.4.jar:2.2.4] 
     at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[apache-cassandra-2.2.4.jar: 
2.2.4] 

J'ai essayé beaucoup de choses pour amorcer, comme nettoyé tous les noeuds, scrubed tous les noeuds, réparé tous les noeuds. mais il échoue toujours avec l'erreur.

Quelqu'un peut-il aider à trouver quel est le problème?

J'ai démarré le cluster avec 6 nœuds et ajouté le 7ème nœud avec succès. mais quand j'essaye d'ajouter le 8ème noeud, il échoue.

chaque noeud a environ 500G de données.

J'utilise DataStax Community Edition 2.2.4

Répondre

0

Il semble que 2.2.4 de libération a un problème lors de l'ajout de nœuds à un cluster existant.

Commander ce JIRA: https://issues.apache.org/jira/browse/CASSANDRA-10961

J'ai eu le même problème et utilisé le pot patché et travaillé.

Fix sera officiellement publié sur la version 2.2.5. Mais vous pouvez utiliser ce chemin entre temps.