see below * JAVA_HOME=/usr/lib/jvm/java-6-openjdk works -- Reading the documentation over at Datastax “The Debian and RPM packages of Cassandra install JNA automatically”
http://www.datastax.com/dev/blog/whats-new-in-cassandra-1-0-improved-memory-and-disk-space-management And indeed the Debian package depends on jna, and the /etc/init.d/cassandra looks as though in adds /usr/share/java/jna.jar to the classpath, and here is the but. If I copy or symlink jna.jar into: * /usr/share/cassandra * /usr/share/cassandra/lib Whenever a column family initialises I get: java.lang.NoClassDefFoundError: Could not initialize class org.apache.cassandra.cache.FreeableMemory This suggests to me that: 1) By default, for me at least, in Debian jna.jar is not on the classpath 2) There is an additional classpath issue jar -tf apache-cassandra.jar | grep "FreeableMemory" succeeds I'm running on: * Ubuntu 10.04 x64 * JAVA_HOME=/usr/lib/jvm/java-6-sun Full stack traces: java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native at com.sun.jna.Pointer.<clinit>(Pointer.java:42) at org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:92) at org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:154) at org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:63) at org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1150) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1174) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1131) at org.apache.cassandra.db.Table.getRow(Table.java:378) at org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:61) at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:797) at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1265) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) INFO [pool-1-thread-1] 2011-11-02 10:26:46,738 Memtable.java (line 177) CFS(Keyspace='BigSet', ColumnFamily='theKeys') liveRatio is 18.20062753783684 (just-counted was 16.960966424636872). calculation took 408ms for 8169 columns ERROR [ReadStage:33] 2011-11-02 10:26:56,599 AbstractCassandraDaemon.java (line 133) Fatal exception in thread Thread[ReadStage:33,5,main] java.lang.NoClassDefFoundError: Could not initialize class org.apache.cassandra.cache.FreeableMemory at org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:92) at org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:154) at org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:63) at org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1150) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1174) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1131) at org.apache.cassandra.db.Table.getRow(Table.java:378) at org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:61) at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:797) at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1265) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)