【问题标题】:Cassandra Startup java.lang.reflect.InvocationTargetExceptionCassandra 启动 java.lang.reflect.InvocationTargetException
【发布时间】:2016-02-04 22:50:10
【问题描述】:

此异常的解决方案是什么

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:322)
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229)
at org.xerial.snappy.Snappy.<clinit>(Snappy.java:48)
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:359)
at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:150)
Caused by: java.lang.UnsatisfiedLinkError: /tmp/snappy-1.0.5-libsnappyjava.so: /tmp/snappy-1.0.5-libsnappyjava.so: failed to map segment from shared object: Operation not permitted
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1957)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1882)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1843)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1061)
at org.xerial.snappy.SnappyNativeLoader.load(SnappyNativeLoader.java:39)
... 11 more
ERROR 11:46:22,430 Exception in thread Thread[WRITE-/172.20.6.138,5,main]
org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] null
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:239)
at org.xerial.snappy.Snappy.<clinit>(Snappy.java:48)
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:359)
at org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:150)

但 cassandra 启动执行仍在继续。最后我得到了异常

java.lang.IllegalStateException: Unable to contact any seeds!
at org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:947)
at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:716)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:554)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:451)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:347)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:446)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:489)
Exception encountered during startup: Unable to contact any seeds!

ERROR 11:55:11,732 线程异常 [StorageServiceShutdownHook,5,main]

java.lang.NullPointerException
at org.apache.cassandra.service.StorageService.stopRPCServer(StorageService.java:321)
at org.apache.cassandra.service.StorageService.shutdownClientServers(StorageService.java:370)
at org.apache.cassandra.service.StorageService.access$000(StorageService.java:88)
at org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:519)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
at java.lang.Thread.run(Thread.java:724)

但种子节点正在运行。

机器防火墙已禁用。

我还尝试更改默认 tmp 目录。我尝试将 JVM_OPTS=-Dorg.xerial.snappy.tempdir=/tmp 包含到 cassandra.in.sh 文件中,但问题仍然存在。

Linux 版本 2.6.32-358.6.1.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) # 1 SMP 2013 年 4 月 23 日星期二 19:29:00 UTC

请帮助我..提前谢谢。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    他们在 Cassandra JIRA 中提到了这个错误: https://issues.apache.org/jira/browse/CASSANDRA-4400

    我在使用 Cassandra 1.2 时遇到了类似的错误,我通过将 snappy 1.0.5 库替换为 snappy 1.0.4.1 来修复它。如果该链接不起作用,您应该能够从早期版本的 Cassandra(如 1.1.x)中获取该链接。

    基本上,从$CASSANDRA_HOME/lib 目录中删除 snappy-java.1.0.5.jar,并将其替换为 snappy-java-1.0.4.1.jar

    【讨论】:

      【解决方案2】:

      我找到了 Erik 在 http://mail-archives.apache.org/mod_mbox/cassandra-user/201312.mbox/%3C52C1DEC4.2080904@cj.com%3E

      您可以在 cassandra-env.sh 中添加类似的内容:

      JVM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/path/that/allows/executables"

      我在 /var/lib/cassandra/ 中创建了一个 tmp 文件夹

      所以我加了

      JVM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/var/lib/cassandra/tmp/"

      希望这对某人有所帮助

      【讨论】:

        猜你喜欢
        • 2013-04-08
        • 2021-02-25
        • 2011-09-28
        • 2014-11-23
        • 2017-11-21
        • 2016-05-18
        • 1970-01-01
        相关资源
        最近更新 更多