I have Cassandra version 3.9 on CentOS 7. When I start Cassandra Server, I get an error, for example:
TRACE [MemtableFlushWriter: 1] 2017-05-15 04: 25: 49,735 LogTransaction.java:264 - Closing the transaction log [mc_txn_flush_3f6a46f0-3961-11e7-87b4-0728ea39fb0d.log in / var / lib / cassandra / data / system / local 7ad54392bcdd35a684174e047860b377]
ERROR [main] 2017-05-15 04: 25: 49,745 CassandraDaemon.java:747 - An exception occurred while starting java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: failed to initialize class com.sun.jna.National 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∗41) ~ [apache-cassandra-3.9.0.jar: 3.9.0] at org. apache.cassandra.db.ColumnFamilyStore.invalidate (ColumnFamilyStore.java∗17) ~ [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/1308 Source) ~ [na: na] in java.lang.Iterable.forEach (Iterable.java:75) ~ [na: 1.8.0_45] in 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.service.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 ( Error starting Cassandra on an ARM64 machine (java.lang.NoClassDefFoundError: failed to initialize class com.sun.jna.Native) ), Soultion suggests changes to cassandra-env.sh . I tried, but this does not work for me.
I checked these options (separately) in 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 using
JVM_OPTS="$JVM_OPTS -Dcassandra.boot_without_jna=true"
But no change in the problem.
And I changed cassandra logger to TRACE, but it shows the same error log as before TRACE. The file (jna-4.0.0.jar) is present in the lib folder (/ usr / share / cassandra / lib). I can not find the reason.
Reasons for me don't work:
cassandra-env.sh is loaded by the server. (If it loads, how can I check if it is loaded or not)
Perhaps another problem arose.
Someone, please let me go from here.
source share