I'm having issues getting embedded Cassandra to work as my back end. Here's the stack trace that I get when I call TitanFactory.open with storage.backend="embeddedcassandra" (and storage.cassandra-config-dir pointing to the default cassandra yaml file):
0 [pool-1-thread-1] INFO org.apache.cassandra.service.CassandraDaemon - JVM vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0_07
2 [pool-1-thread-1] INFO org.apache.cassandra.service.CassandraDaemon - Heap size: 139853824/466092032
2 [pool-1-thread-1] INFO org.apache.cassandra.service.CassandraDaemon - Classpath: /Users/mamccr/datastore/titan-cassandra-0.3.0/lib/cassandra-all-1.2.2.jar
101 [pool-1-thread-1] INFO org.apache.cassandra.utils.CLibrary - JNA link failure, one or more native method will be unavailable.
108 [pool-1-thread-1] INFO org.apache.cassandra.config.DatabaseDescriptor - Loading settings from file:/Users/mccraw/Documents/datastore/cassandra.yaml
142 [pool-1-thread-1] ERROR org.apache.cassandra.config.DatabaseDescriptor - Fatal configuration error error
Can't construct a java object for tag:
yaml.org,2002:org.apache.cassandra.config.Config; exception=Class not found: org.apache.cassandra.config.Config
in 'reader', line 10, column 1:
cluster_name: 'Test Cluster'
^
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:333)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:141)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:127)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:412)
at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:147)
at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:122)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:150)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:366)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:409)
at com.thinkaurelius.titan.diskstorage.cassandra.embedded.CassandraDaemonWrapper$CassandraStarter.run(CassandraDaemonWrapper.java:64)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.yaml.snakeyaml.error.YAMLException: Class not found: org.apache.cassandra.config.Config
at org.yaml.snakeyaml.constructor.Constructor.getClassForNode(Constructor.java:633)
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.getConstructor(Constructor.java:321)
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:331)
... 17 more
null; Can't construct a java object for tag:
yaml.org,2002:org.apache.cassandra.config.Config; exception=Class not found: org.apache.cassandra.config.Config; in 'reader', line 10, column 1:
cluster_name: 'Test Cluster Bar'
^
Invalid yaml; unable to start server. See log for stacktrace.
Has anyone seen anything like this before? It seems at first glance to be a class loading issue, but notice that org.apache.cassandra.config.DatabaseDescriptor is in the stack trace, and it is in the same package as org.apache.cassandra.config.Config (the class that supposedly can't be found), so that strikes me as maybe a red herring.