2013-06-20 12 views
7
ERROR [WRITE-/10.10.35.30] 2013-06-19 23:15:56,907 CassandraDaemon.java (line 175) Exception in thread Thread[WRITE-/10.10.35.30,5,main] 
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy 
    at org.xerial.snappy.SnappyOutputStream.<init>(SnappyOutputStream.java:79) 
    at org.xerial.snappy.SnappyOutputStream.<init>(SnappyOutputStream.java:66) 
    at org.apache.cassandra.net.OutboundTcpConnection.connect(OutboundTcpConnection.java:341) 
    at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:143) 

Quando si passa attraverso conoscere problemi ho trovato questo La libreria nativa snappy-1.0.4.1-libsnappyjava.so per la compressione Snappy è incluso nel scattanti-java-1.0.4.1. file jar. Quando JVM inizializza il JAR, la libreria viene aggiunta alla directory temporanea predefinita. Se la directory temporanea predefinita è montata con un'opzione noexec, risulta nell'eccezione precedente.cassandra 1.2 non riesce a init scattanti in FreeBSD

ho aggiunto JVM_OPTS = -Dorg.xerial.snappy.tempdir =/tmp in cassandra.in.sh e ancora non funzionava. Ho provato anche specificare la directory temp direttamente

./bin/cassandra -Dorg.xerial.snappy.tempdir=/tmp 

Nella versione Cassandra stessa macchina 1.0.12 funziona bene.

Qualsiasi aiuto sarà apprezzato.

+1

Stai eseguendo la cosa su un singolo nodo? Se così può andare su cassandra.yaml e cambiare internode_compression su none e riavviare il server – abhi

+0

Ho avuto lo stesso problema su RHEL5.9 quando eseguivo test di integrazione con EmbeddedCassandra, ma la correzione suggerita da abhi ha fatto il trucco. Grazie! –

risposta

5

Il problema è che non vi è alcuna libreria di FreeBSD inclusa nel file JAR scattante fornito con Cassandra. Installa la cartella archivers/snappy-java, elimina il file JAR snappy-java fornito con Cassandra e copia /usr/local/share/java/classes/snappy-java.jar nella directory lib di Cassandra.

+0

Quindi intendi dire che raggruppano la libreria nativa insieme al barattolo. Yikes .. – scrapcodes

2

Lo stesso problema si è verificato durante il tentativo di abilitare la compressione snappy per apache kafka 0.8 su FreeBSD ma la soluzione era la stessa. Basta copiare /usr/local/share/java/classes/snappy-java.jar nella directory kafka/src/core/target/scala-2.8.0, riavviare kafka e divertiti!