我从网址上下载了EC2服务器上的Titan Version 1.0
然后我用以下命令解压缩并运行titan服务器:
bin/titan.sh启动
Forking Cassandra...
Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300).... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182).... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.
Run Code Online (Sandbox Code Playgroud)
然后我尝试从Titan 1.0版本的HTTP请求(在titan 0.4版本Rexster工作正常)但我得到以下错误
我将Titan 1.0版本和带有REST Api的Gremlin Server用于创建和更新Vertex详细信息。如何使用vertexId删除顶点?
我正在尝试在Docker(v1.13.0)中设置Titan/Cassandra/Gremlin-Server堆栈.我面临的问题是,尝试连接到默认端口上的Gremlin-Server的应用程序8182报告错误(详情如下).
首先,这是一些相关的版本信息:
设置在a Dockerfile中进行,以便可重现.它假定一个卡桑德拉容器已经存在,在运行cassandra.yaml中start_rpc已设置为true.
该Dockerfile如下:
FROM openjdk:alpine
ENV TITAN 'titan-1.0.0-hadoop1'
RUN apk update && apk add bash unzip && rm -rf /var/cache/apk/* \
&& adduser -S -s /bin/bash -D srg \
&& wget -O /tmp/$TITAN.zip http://s3.thinkaurelius.com/downloads/titan/$TITAN.zip \
&& unzip /tmp/$TITAN.zip -d /opt && ln -s /opt/$TITAN /opt/titan \
&& rm /tmp/*.zip \
&& chown -R srg /opt/$TITAN/ \
&& /opt/titan/bin/gremlin-server.sh -i …Run Code Online (Sandbox Code Playgroud) 我已经设置了 Tinkerpop Gremlin Server 3.2.3 和 Tinkerpop Gremlin Console 3.2.3,并将 janusgraph 0.1.1 作为插件添加到两者中。
我在远程模式下运行以下代码,结果在下面列出的异常中
:remote connect tinkerpop.server conf/remote.yaml
:> graph = GraphFactory.open('conf/hadoop-graph/hadoop-load.properties')
:> blvp = BulkLoaderVertexProgram.build().writeGraph('conf/connection.properties').create(graph)
:> graph.compute(SparkGraphComputer).program(blvp).submit().get()
Run Code Online (Sandbox Code Playgroud)
例外
java.lang.IllegalArgumentException: Graph does not support the provided graph computer: SparkGraphComputer
at org.apache.tinkerpop.gremlin.structure.Graph$Exceptions.graphDoesNotSupportProvidedGraphComputer(Graph.java:1140)
at org.janusgraph.graphdb.tinkerpop.JanusGraphBlueprintsGraph.compute(JanusGraphBlueprintsGraph.java:145)
at org.apache.tinkerpop.gremlin.structure.Graph$compute$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at Script4.run(Script4.groovy:1)
at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:619)
at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:448)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)
at org.apache.tinkerpop.gremlin.groovy.engine.ScriptEngines.eval(ScriptEngines.java:119)
at org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$2(GremlinExecutor.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)
上面的代码在本地模式下工作正常,任何人都可以帮助我在这里缺少什么。
我开始玩gremlin-python包装器来与我的gremlin服务器进行交互.
我做了以下步骤:
./bin/gremlin.sh
Run Code Online (Sandbox Code Playgroud)
一旦Gremlin控制台打开,我使用以下命令加载配置:
graph = JanusGraphFactory.open('conf/gremlin-server/janusgraph-cassandra-es.properties')
g = graph.traversal()
saturn = g.V().has('name', 'saturn')
Run Code Online (Sandbox Code Playgroud)
gremlin shell中的上面一组代码工作得很好,我可以看到列出的脊椎,但是当我尝试在python中做同样的事情时,我得到一个空图.以下是我的python代码:
graph = Graph()
g = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','g'))
print(g)
Run Code Online (Sandbox Code Playgroud)
它返回: graphtraversalsource [graph [empty]]
为什么我得到空图?据我所知,它无法连接到相同的Graph源.有什么我想念的吗?
请注意:
JanusGraphFactory.open('conf/gremlin-server/janusgraph-cassandra-es.properties')
Run Code Online (Sandbox Code Playgroud)
提供的配置文件名是用于启动gremlin服务器的文件名.
任何帮助都非常感谢.
谢谢
首先,我按照以下步骤在 JanusGraph 中创建一个图形。
conf/janusgraph-cassandra-configurationgraph.propertiesindex.search.backend = elasticsearch
index.search.hostname = 127.0.0.1
index.search.elasticsearch.transport-scheme = http
Run Code Online (Sandbox Code Playgroud)
将 gremlin-server-configuration.yaml 中的“ConfigurationManagementGraph:conf/janusgraph-cql-configurationgraph.properties”更改为“ConfigurationManagementGraph:conf/janusgraph-cassandra-configurationgraph.properties”
将 conf/gremlin-server/gremlin-server.yaml 更改为 conf/gremlin-server/gremlin-server.yaml.orig
将 conf/gremlin-server/gremlin-server-configuration.yaml 更改为 conf/gremlin-server/gremlin-server.yaml
运行 bin/janusgraph.sh start
运行 bin/gremlin.sh
跑
:remote connect tinkerpop.server conf/remote.yaml session
:remote console
map = new HashMap<String, Object>();
map.put("storage.backend", "cassandrathrift");
map.put("storage.hostname", "127.0.0.1");
map.put("graph.graphname", "KG");
map.put("index.search.backend", "elasticsearch");
map.put("index.search.hostname", "127.0.0.1");
map.put("index.search.elasticsearch.transport-scheme", "http");
ConfiguredGraphFactory.createConfiguration(new MapConfiguration(map));
graph=ConfiguredGraphFactory.open("KG");
g=graph.traversal();
ConfiguredGraphFactory.getGraphNames()
Run Code Online (Sandbox Code Playgroud)
关闭 janusgraph,运行 bin/janusgraph.sh 停止
将 conf/janusgraph-cassandra-es.properties 复制到 conf/KG.properties
在 conf/KG.properties 顶部添加以下两行
gremlin.graph=org.janusgraph.core.ConfiguredGraphFactory
graph.graphname=KG
Run Code Online (Sandbox Code Playgroud)
KG: conf/KG.properties
Run Code Online (Sandbox Code Playgroud)
将“scripts/empty-sample.groovy”添加到“org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin:”
打开 script/empty-sample.groovy,将最后一行修改为: …
作为容量和性能测试的一部分,我尝试使用 java 线程并行执行多个 gremlin 请求(图形遍历)。它在较少数量的线程中工作得很好。
当我增加线程数(例如 500)时,出现以下错误
线程“Thread-34”中出现异常 java.lang.RuntimeException:java.lang.RuntimeException:java.util.concurrent.TimeoutException:等待可用主机超时。在 org.apache.tinkerpop.gremlin.driver.Client.submit(Client.java:146) 在 com.tests.java.titan.Vertices.exists(Vertices.java:37) 在 com.tests.java.titan.Complex com.tests.java.perfTests.TitanThread.run(ParallelGraphTraversal.java:112) 处的.searchNodesRelatedByRelation(Complex.java:110) 引起:java.lang.RuntimeException: java.util.concurrent.TimeoutException: 等待超时可用的主机。在 org.apache.tinkerpop.gremlin.driver.Client.submitAsync(Client.java:194) 在 org.apache.tinkerpop.gremlin.driver.Client.submitAsync(Client.java:174) 在 org.apache.tinkerpop.gremlin .driver.Client.submit(Client.java:144) ... 3 个以上
我尝试将 threadPoolWorker 的值从 1 增加到 2,将 gremlinPool 从 8 增加到 16(在文件 gremlin-server.yaml 中)。但我没有注意到任何区别。
有人遇到过这个问题吗?您能否告诉我最大同时连接数是否有限制?
我们的环境:CDH 5.7.1、Titan 1.1.0-SNAPSHOT、Solr 4.10.3、HBase 1.2.0、titan-tp3-driver,用于创建与 gremlin 服务器的远程连接并进行查询
我有一个字符串格式的 Gremlin 查询(例如“gV()”)。我想执行这个字符串而不将它提交给 GremlinServer。
我使用以下依赖项:
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-driver</artifactId>
<version>3.3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
我使用gremlin控制台创建了一个图形
gremlin> ConfiguredGraphFactory.graphNames
==>MYGRAPH
gremlin> ConfiguredGraphFactory.getConfiguration('MYGRAPH')
==>storage.backend=cql
==>graph.graphname=MYGRAPH
==>storage.hostname=127.0.0.1
==>Template_Configuration=false
gremlin> g.V().properties()
==>vp[name->SFO]
==>vp[country->USA]
==>vp[name->ALD]
==>vp[country->IND]
==>vp[name->BLR]
==>vp[country->IND]
gremlin>
Run Code Online (Sandbox Code Playgroud)
我想使用gremlin-python连接MYGRAPH.有人可以告诉我如何使用gremlin-python访问名为"MYGRAPH"的图形.
提前致谢...
我将图表中的所有值提取到名为节点的列表中:
\n\nnodes = g.V().valueMap(True).toList()\nRun Code Online (Sandbox Code Playgroud)\n\n对于每个节点,我想获取 id 但我不知道如何获取。例如我有一个名为 的字段'name'。要获取第一个顶点的名称,我会执行以下操作:
nodes[0][\xe2\x80\x98name\xe2\x80\x99]\nRun Code Online (Sandbox Code Playgroud)\n\n但我无法使用相同的方式获取第一个节点的 id。我不知道为什么。也许因为它是自动分配的而不是用户创建的字段,所以有不同的方式来获取它?
\ngremlin-server ×10
gremlin ×7
janusgraph ×4
titan ×4
tinkerpop ×3
python ×2
tinkerpop3 ×2
apache-spark ×1
graph ×1
java ×1
rexster ×1