0

I'm trying to make graph queries via a gremlin-shell to a Cassandra backend (locally or remotely).

I downloaded a stock Gremlin Server distribution and then installed Titan (as described here in the manual-installation).

http://s3.thinkaurelius.com/docs/titan/0.9.0-M1/server.html

I added all the property settings and classpath :

~/gremlin-server-3.0.0.M6$ cat conf/titan-cassandra.properties 

gremlin.graph=com.thinkaurelius.titan.core.TitanFactory

storage.backend=cassandrathrift
storage.directory=../db/cassandra

~/gremlin-server-3.0.0.M6$ cat conf/gremlin-server.yaml 
host: localhost
port: 8182
threadPoolWorker: 1
gremlinPool: 8
scriptEvaluationTimeout: 30000
serializedResponseTimeout: 30000
channelizer: com.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  g: conf/titan-cassandra.properties}
  #g: conf/tinkergraph-empty.properties}
plugins:
  - aurelius.titan

When I bring up the Gremlin server, I get the following errors (even though gremlin server itself comes up) :

bin/gremlin-server.sh
[INFO] GremlinServer - 
         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----

[INFO] GremlinServer - Configuring Gremlin Server from conf/gremlin-server.yaml
[INFO] MetricManager - Configured Metrics ConsoleReporter configured with report interval=180000ms
[INFO] MetricManager - Configured Metrics CsvReporter configured with report interval=180000ms to fileName=/tmp/gremlin-server-metrics.csv
[INFO] MetricManager - Configured Metrics JmxReporter configured with domain= and agentId=
[INFO] MetricManager - Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=com.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
[WARN] Graphs - Graph [g] configured at [conf/titan-cassandra.properties] could not be instantiated and will not be available in Gremlin Server.  GraphFactory message: GraphFactory could not instantiate this Graph implementation [com.thinkaurelius.titan.core.TitanFactory]
java.lang.RuntimeException: GraphFactory could not instantiate this Graph implementation [com.thinkaurelius.titan.core.TitanFactory]
:
:
[INFO] GremlinServer - Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
[INFO] ScriptEngines - Loaded nashorn ScriptEngine
[INFO] ScriptEngines - Loaded gremlin-groovy ScriptEngine
[INFO] GremlinServer - Initialized GremlinExecutor and configured ScriptEngines.
[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+kryo with com.tinkerpop.gremlin.driver.ser.KryoMessageSerializerV1d0
[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+kryo-stringd with com.tinkerpop.gremlin.driver.ser.KryoMessageSerializerV1d0
[INFO] AbstractChannelizer - Configured application/vnd.gremlin-v1.0+json with com.tinkerpop.gremlin.driver.ser.JsonMessageSerializerGremlinV1d0
[INFO] AbstractChannelizer - Configured application/json with com.tinkerpop.gremlin.driver.ser.JsonMessageSerializerV1d0
[INFO] GremlinServer - Gremlin Server configured with worker thread pool of 1 and boss thread pool of 1
[INFO] GremlinServer - Channel started at port 8182.

Furthermore, when I try to invoke a simple graph operation via the gremlin-shell, I see the following :

bin/gremlin.sh 

         \,,,/
         (o o)
-----oOOo-(3)-oOOo-----
plugin activated: aurelius.titan
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/appsec/titan-1.0.0-hadoop1/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/appsec/titan-1.0.0-hadoop1/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
20:50:02 INFO  org.apache.tinkerpop.gremlin.hadoop.structure.HadoopGraph  - HADOOP_GREMLIN_LIBS is set to: /home/appsec/titan-1.0.0-hadoop1/lib
plugin activated: tinkerpop.hadoop
plugin activated: tinkerpop.tinkergraph

gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Connected - localhost/127.0.0.1:8182

gremlin> GraphOfTheGodsFactory.load(graph)
No such property: graph for class: groovysh_evaluate
Display stack trace? [yN] y
groovy.lang.MissingPropertyException: No such property: graph for class: groovysh_evaluate


gremlin> graph = TitanFactory.open('/home/appsec/gremlin-server-3.0.0.M6/conf/titan-cassandra.properties')
Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager
Display stack trace? [yN] y
java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager
:
:
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.thrift.transport.TSocket.open(TSocket.java:180)
    ... 55 more
4

1 回答 1

0

您应该下载并使用Titan 1.0.0,并确保您参考Titan Server 的 Titan 1.0.0 文档。您不需要单独安装 Gremlin Server,因为它已经与 Titan 1.0.0 发行版捆绑在一起。

Titan 1.0.0 版本中存在一个已修复的错误。您可以在之前的StackOverflow 问题中阅读更多相关信息。简而言之,您需要更新gremlin-server.yaml指向新的配置文件titan-cassandra-es-server.properties

如果您有兴趣将 Gremlin 服务器连接到 Titan(而不是使用 Titan 分发中已包含的服务器),我在此邮件列表帖子中列出了一些步骤:

# Get Apache TinkerPop's Gremlin Server (Titan 1.0.0 uses TinkerPop 3.0.1)
unzip apache-gremlin-server-3.0.1-incubating-bin.zip
cd apache-gremlin-server-3.0.1-incubating

# This will install Titan-Cassandra as a plugin under ext/titan-cassandra
./bin/gremlin-server.sh -i com.thinkaurelius.titan titan-cassandra 1.0.0

# Copy over some Titan configuration files
# https://gist.github.com/pluradj/8437255e831d2b640b6fea4f815a79c5
# * conf/titan-server.yaml
# * conf/titan-cassandra.properties

# start the server with Titan configuration
./bin/gremlin-server.sh conf/titan-server.yaml
于 2016-08-24T03:43:37.257 回答