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)
Run Code Online (Sandbox Code Playgroud)
当我知道问题时,我发现这个Snappy压缩的本机库snappy-1.0.4.1-libsnappyjava.so包含在snappy-java-1.0.4.1.jar文件中.当JVM初始化JAR时,库将添加到默认临时目录中.如果使用noexec选项装入默认临时目录,则会导致上述异常.
我在cassandra.in.sh中添加了JVM_OPTS = -Dorg.xerial.snappy.tempdir =/tmp,它仍然无效.我也尝试直接指定临时目录
./bin/cassandra -Dorg.xerial.snappy.tempdir=/tmp
Run Code Online (Sandbox Code Playgroud)
在同一台机器上cassandra版本1.0.12工作正常.
任何帮助将不胜感激.