简体   繁体   English

Cassandra 无法初始化 class com.sun.jna.Native

[英]Cassandra Could not initialize class com.sun.jna.Native

I am having Cassandra version 3.9 on CentOS 7. While starting Cassandra Server, I'm getting error like this::我在 CentOS 上安装了 Cassandra 3.9 版 7. 启动 Cassandra 服务器时,出现如下错误:

TRACE [MemtableFlushWriter:1] 2017-05-15 04:25:49,735 LogTransaction.java:264 - Closing transaction log [mc_txn_flush_3f6a46f0-3961-11e7-87b4-0728ea39fb0d.log in /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377] TRACE [MemtableFlushWriter:1] 2017-05-15 04:25:49,735 LogTransaction.java:264 - 关闭事务日志 [mc_txn_flush_3f6a46f0-3961-11e7-87b4-0728ea39fb0d.log in /var/libdata/system/cassandra -7ad54392bcdd35a684174e047860b377]
ERROR [main] 2017-05-15 04:25:49,745 CassandraDaemon.java:747 - Exception encountered during startup java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native at org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:403) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.db.SystemKeyspace.forceBlockingFlush(SystemKeyspace.java:793) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.db.SystemKeyspace.removeTruncationRecord(SystemKeyspace.java:639) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:541) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.db.ColumnFamilyStore.invalidate(Column ERROR [main] 2017-05-15 04:25:49,745 CassandraDaemon.java:747 - Exception encountered during startup java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class com. sun.jna.Native at org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:403) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.db.SystemKeyspace.forceBlockingFlush(SystemKeyspace.java :793) .apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:541) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.db.ColumnFamilyStore.invalidate(Column FamilyStore.java:517) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.schema.LegacySchemaMigrator.lambda$unloadLegacySchemaTables$341(LegacySchemaMigrator.java:137) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.schema.LegacySchemaMigrator$$Lambda$93/1308179535.accept(Unknown Source) ~[na:na] at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_45] at org.apache.cassandra.schema.LegacySchemaMigrator.unloadLegacySchemaTables(LegacySchemaMigrator.java:137) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.schema.LegacySchemaMigrator.migrate(LegacySchemaMigrator.java:83) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254) [apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.servic FamilyStore.java:517) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.schema.LegacySchemaMigrator.lambda$unloadLegacySchemaTables$341(LegacySchemaMigrator.java:137) ~[apache-cassandra-3.9.0.jar: 3.9.0] 在 org.apache.cassandra.schema.LegacySchemaMigrator$$Lambda$93/1308179535.accept(未知来源)~[na:na] 在 java.lang.Iterable.forEach(Iterable.882138284674)8[na:na] .0_45] at org.apache.cassandra.schema.LegacySchemaMigrator.unloadLegacySchemaTables(LegacySchemaMigrator.java:137) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.schema.LegacySchemaMigrator.migrate(LegacySchemaMigrator.java:83 ) ~[apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254) [apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.服务e.CassandraDaemon.activate(CassandraDaemon.java:601) [apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:730) [apache-cassandra-3.9.0.jar:3.9.0] e.CassandraDaemon.activate(CassandraDaemon.java:601) [apache-cassandra-3.9.0.jar:3.9.0] at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:730) [apache-cassandra-3.9.0.jar :3.9.0]

There is a solution to this problem ( Cassandra Startup failure on ARM64 machine (java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native) ), Soultion suggests changes in cassandra-env.sh .这个问题有一个解决方案( Cassandra Startup failure on ARM64 machine (java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native) ),Soultion 建议更改cassandra-env.sh I tried it but it is not working for me.我试过了,但对我不起作用。

I checked with these options (separately) in cassandra-env.sh我在cassandra-env.sh中(分别)检查了这些选项

JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/home/tech/cassandra/tmp"
JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/home/cassandra/tmp"
JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/var/lib/cassandra/tmp"

even tried with甚至尝试过

JVM_OPTS="$JVM_OPTS -Dcassandra.boot_without_jna=true"

But no change in the problem.但是问题没有变化。

And I changed cassandra logger to TRACE, but it is showing the same error log as before there was no TRACE.我将 cassandra 记录器更改为 TRACE,但它显示的错误日志与之前没有 TRACE 时相同。 The file(jna-4.0.0.jar) is present in lib folder (/usr/share/cassandra/lib).文件 (jna-4.0.0.jar) 存在于 lib 文件夹 (/usr/share/cassandra/lib) 中。 I am unable to find what the actual reason is.我无法找到真正的原因是什么。

The reasons for not working for me are like:不为我工作的原因如下:

  1. cassandra-env.sh is loaded by server. cassandra-env.sh 由服务器加载。 (If it loading how do I check, whether it is loaded or not) (如果加载我怎么检查,是否加载)

  2. There might be some other problem.可能还有其他问题。

Someone, Please let me out from this.有人,请让我离开这里。

Finally the problem with jna-4.0.0.jar. 最后是jna-4.0.0.jar的问题。

The file jna-4.0.0.jar in lib is not initializing, so I changed the file by creating symbolic link to jna.jar. lib中的文件jna-4.0.0.jar没有初始化,所以我通过创建jna.jar的符号链接来更改文件。

sudo yum install jna

sudo ln -s (JAVA_PATH)/usr/share/java/jna.jar (CASSANDRA_PATH)/usr/share/cassandra/lib

Then It produced some errors regarding tmp , solved with previous solutions. 然后它产生了一些关于tmp的错误,用之前的解决方案解决了。

Regarding JNA, there are already some questions over there, but those are not specific. 关于JNA,那里已经存在一些问题,但这些问题并不具体。

I faced the same problem. 我遇到了同样的问题。 Clean up (rm -rf *) of the /tmp folder or the folder which '-Djava.io.tmpdir' points to 清理/ tmp文件夹(rm -rf *)或'-Djava.io.tmpdir'指向的文件夹

After I upgraded Java, the Cassandra couldn't start. 升级Java后,Cassandra无法启动。 I fixed it by. 我修好了。

1. mkdir -p /var/lib/cassandra/tmp chown cassandra:cassandra /var/lib/cassandra/tmp 1. mkdir -p / var / lib / cassandra / tmp chown cassandra:cassandra / var / lib / cassandra / tmp

2. Add below parameter to the end of the file /cassandra-env.sh JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/var/lib/cassandra/tmp" 2.将以下参数添加到文件末尾/cassandra-env.sh JVM_OPTS =“$ JVM_OPTS -Djava.io.tmpdir = / var / lib / cassandra / tmp”

Then restarted Cassandra. 然后重新启动了卡桑德拉。

For those of the future...对于那些未来...

I see the NoClassDefFound in the system.log file.我在 system.log 文件中看到了 NoClassDefFound。

I tried the tmp changes to no avail.我尝试了 tmp 更改无济于事。 Then I looked at然后我看了看

sudo journalctl -u cassandra.service

And I see我明白了

/etc/cassandra/cassandra-env.sh: Syntax error: Unterminated quoted string

So that my be helpful to look at.以便于我查看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ARM64机器上的Cassandra启动失败(java.lang.NoClassDefFoundError:无法初始化类com.sun.jna.Native) - Cassandra Startup failure on ARM64 machine (java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native) 无法初始化com.sun.jna.Native类Android Studio IDE致命错误 - Could not initialize class com.sun.jna.Native Android Studio IDE Fatal error 无法从类com.sun.jna.Native的Native(Method,Object)获取静态方法 - Can't obtain static method fromNative(Method, Object) from class com.sun.jna.Native 未找到 JNA。 本机方法将被禁用。 java.lang.ClassNotFoundException: com.sun.jna.Native - JNA not found. native methods will be disabled. java.lang.ClassNotFoundException: com.sun.jna.Native java.lang.NoClassDefFoundError:无法初始化com.sun.jersey.core.header.MediaTypes类 - java.lang.NoClassDefFoundError: Could not initialize class com.sun.jersey.core.header.MediaTypes 在资源路径中找不到 JNA 原生支持 (/com/sun/jna/linux-arm/libjnidispatch.so) - JNA native support (/com/sun/jna/linux-arm/libjnidispatch.so) not found in resource path java.lang.NoClassDefFoundError:无法初始化类com.sun.proxy。$ Proxy8 - java.lang.NoClassDefFoundError: Could not initialize class com.sun.proxy.$Proxy8 NoClassDefFoundError:无法初始化类com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl - NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl 无法初始化 class com.sun.xml.internal.ws.fault.SOAPFaultBuilder - Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder 线程“main”中的异常java.lang.NoClassDefFoundError:无法初始化类com.sun.jersey.core.header.MediaTypes - Exception in thread “main” java.lang.NoClassDefFoundError: Could not initialize class com.sun.jersey.core.header.MediaTypes
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM