将Titan 0.4.0连接到Datastax AMI的“永久例外”

时间:2013-11-19 06:08:30

标签: cassandra datastax-enterprise titan tinkerpop

我是Titan领域的新手,所以我会尽可能简单地保持这个问题。

使用provided here指令,我能够成功地将运行Titan 0.3.2的1个linux节点连接到Datastax / Cassandra实例作为后端。

然后我下载了Titan 0.4.0并尝试了相同的操作,但收到后端异常。为了更好地衡量,我将我的.properties文件中的键空间更改为“titan4”,然后我将其反映在Cassandra后端。

然而,尽管成功地看到了在Cassandra中创建的“titan4”键空间,但我得到了一个相当无用的异常和堆栈跟踪。我是一个业余爱好者,所涉及的所有技术都是新手。非常感谢任何帮助。

gremlin> g = TitanFactory.open('conf/titan-t2.properties')
Permanent exception during backend operation
Display stack trace? 

_

com.thinkaurelius.titan.core.TitanException: Permanent exception during backend operation
        at com.thinkaurelius.titan.diskstorage.util.BackendOperation.execute(BackendOperation.java:32)
        at com.thinkaurelius.titan.diskstorage.Backend.initialize(Backend.java:252)
        at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:683)
        at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:72)
        at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40)
        at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:29)
        at com.thinkaurelius.titan.core.TitanFactory$open.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at groovysh_evaluate.run(groovysh_evaluate:56)
        at groovysh_evaluate$run.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
        at org.codehaus.groovy.tools.shell.Interpreter.evaluate(Interpreter.groovy:67)
        at org.codehaus.groovy.tools.shell.Interpreter$evaluate.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:152)
        at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:114)
        at org.codehaus.groovy.tools.shell.Shell$leftShift$0.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:88)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy)
        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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1079)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:128)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:148)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:100)
        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.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:272)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:137)
        at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:57)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run(InteractiveShellRunner.groovy)
        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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1079)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:128)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:148)
        at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:66)
        at com.thinkaurelius.titan.tinkerpop.gremlin.Console.<init>(Console.java:57)
        at com.thinkaurelius.titan.tinkerpop.gremlin.Console.<init>(Console.java:70)
        at com.thinkaurelius.titan.tinkerpop.gremlin.Console.main(Console.java:96)
    Caused by: com.thinkaurelius.titan.diskstorage.PermanentStorageException: Permanent failure in storage backend
        at com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager.setConfigurationProperty(CassandraThriftStoreManager.java:479)
        at com.thinkaurelius.titan.diskstorage.Backend$2.call(Backend.java:257)
        at com.thinkaurelius.titan.diskstorage.Backend$2.call(Backend.java:252)
        at com.thinkaurelius.titan.diskstorage.util.BackendOperation.execute(BackendOperation.java:29)
        ... 61 more
    Caused by: java.lang.NullPointerException
        at org.apache.cassandra.utils.ByteBufferUtil.bytes(ByteBufferUtil.java:243)
        at org.apache.cassandra.cql.jdbc.JdbcUTF8.decompose(JdbcUTF8.java:98)
        at org.apache.cassandra.db.marshal.UTF8Type.decompose(UTF8Type.java:39)
        at org.apache.cassandra.db.marshal.UTF8Type.fromString(UTF8Type.java:61)
        at com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager.setConfigurationProperty(CassandraThriftStoreManager.java:470)

编辑:

登录Datastax图像:

Cassandra version

和Java版本(我不得不从Linux AMI上的1.6手动升级到1.7或Gremlin无法运行)

Java version

2 个答案:

答案 0 :(得分:2)

我在你的Datastax AMI机器上看到你有Cassandra 2,而Titan has a tested compatibility有一个较低版本的Cassandra(1.2)。

尝试安装Cassandra 1.2并重试。

修改

自Titan 0.50以来,compatibility page所述支持Cassandra 1.2和2.0。

答案 1 :(得分:2)

我已经能够使用Titan来对抗运行C * 2.0.11的DSE 4.6

以下是Aurelius团队的最新测试 - http://s3.thinkaurelius.com/docs/titan/0.5.4/version-compat.html#d0e15023

以下是我在DSE框中执行的步骤:

拉动并提取二进制文件

wget http://s3.thinkaurelius.com/downloads/titan/titan-all-0.4.4.zip
unzip titan-all-0.4.4.zip 



cd titan-all-0.4.4
bin/gremlin.sh

在Gremlin shell中加载db:

g = TitanFactory.open('conf/titan-cassandra-es.properties')
GraphOfTheGodsFactory.load(g)

一些快速测试:

saturn = g.V('name','saturn').next()
saturn.getProperty('name')
saturn.map()
saturn.in('father').in('father').name

g.E.has('place',WITHIN,Geoshape.circle(37.97,23.72,50))