cassandra - "Excepción permanente" que conecta Titan 0.4.0 a Datastax AMI
datastax-enterprise tinkerpop (2)
He podido usar Titán contra DSE 4.6 que ejecuta C * 2.0.11
Aquí están las últimas pruebas del equipo de Aurelius: http://s3.thinkaurelius.com/docs/titan/0.5.4/version-compat.html#d0e15023
Estos son los pasos que seguí en mi caja de DSE:
Tira y extrae los binarios
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
Dentro del shell Gremlin carga el db:
g = TitanFactory.open(''conf/titan-cassandra-es.properties'')
GraphOfTheGodsFactory.load(g)
Algunas pruebas rápidas:
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))
Soy nuevo en el reino de Titán, así que mantendré esta pregunta lo más simple posible.
Utilizando las instrucciones proporcionadas aquí , puedo conectar exitosamente 1 nodo de Linux ejecutando Titan 0.3.2 a la instancia de Datastax / Cassandra como un back-end.
Luego descargué Titan 0.4.0 e intenté lo mismo, pero recibí una excepción de back-end. Para una buena medida, cambié el espacio de teclas en mi archivo .properties a "titan4", que luego veo reflejado en el back-end de Cassandra.
Sin embargo, a pesar de ver con éxito el espacio de teclado "titan4" creado en Cassandra, obtengo una excepción bastante inútil y un seguimiento de la pila. Soy aficionado y muy nuevo en todas las tecnologías involucradas. Cualquier ayuda es muy apreciada.
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)
EDITAR:
Iniciando sesión en la imagen de Datastax:
Y la versión de Java (tuve que actualizar manualmente a 1.7 desde 1.6 en Linux AMI o Gremlin no se ejecutaría)
Veo en su máquina Datastax AMI que tiene Cassandra 2, mientras que Titan tiene una compatibilidad comprobada con una versión inferior de Cassandra (1.2).
Intenta instalar Cassandra 1.2 y vuelve a intentarlo.
EDITAR :
Desde Titan 0.50 ambas Cassandra 1.2 y 2.0 son compatibles como se indica en la página de compatibilidad .