将本地gephi实例连接到远程titan服务器

时间:2018-11-15 20:36:40

标签: docker cassandra gremlin titan gephi

这是我要解决的方案:我有两个环境:本地计算机和Azure中托管的虚拟机

在虚拟机中,我启动了一个gremlin容器,其中包含gremlin客户端,服务器并连接到cassandra图形数据库。

这是我运行 docker container ls 命令时容器运行的信息:

CONTAINER ID: 029095e26f53        
IMAGE: 3f03c6bfb0a2
COMMAND: "/bin/sh -c /gremlin…"   
CREATED: 2 weeks ago         
STATUS: Up 2 weeks          
PORTS: 0.0.0.0:8182->8182/tcp                                                                                              
NAME: gremlin

当我进入容器内部时,我运行以下命令以运行gremlin客户端:

./bin/gremlin.sh

在gremlin控制台中,我运行以下命令以连接到tinkerpop服务器:

:remote connect tinkerpop.server conf/remote.yaml

==>已连接-localhost / 127.0.0.1:8182 --->来自gremlin控制台的答案

如果我运行以下gremlin查询:

:> g.V().count()

我得到一个不同于零的数字,告诉我图形数据库中有一条记录。

现在在另一面,我在本地计算机上有Gephi客户端,我希望它能够显示该图形数据库。或者至少让Gephi显示来自

的视觉数据
graph = TinkerFactory.createModern()

在gremlin容器中运行。

我要这样做是因为我需要为gremlin和titan生态系统选择可视化工具。

我试图设置Gephi客户端功能以连接到虚拟机的ip和端口8182,但是它显示了红色的点,告诉我这是不可能的。我想念什么?我很确定还缺少一些步骤。预先感谢,

胡安·伊格纳西奥(Juan Ignacio)

1 个答案:

答案 0 :(得分:1)

如果图形是“远程”的,并且不在Gremlin Console中的内存中,则您必须设计一种方法以使其在本地可用。对于在Gremlin Server中运行或完全远程的Graph(例如CosmosDB,DSE Graph或Amazon Neptune),这种情况是典型的。

使它们在本地可用的典型方法是使用[subgraph()][1]-步骤仅拉出您关心的图形部分,并将其返回到Gremlin Console。对于支持subgraph()步的图形,它将作为TinkerGraph返回(例如Titan,尽管我假设您将使用JanusGraph),所以对于您的测试,它使用TinkerFactory和一个很小的图形图,您可以这样做:

gremlin> :remote connect tinkerpop.server conf/remote-objects.yaml  

请注意“ remote-objects.yaml”的配置,因为该配置将返回实际对象-实际的TinkerGraph而不是TinkerGraph的字符串表示形式。

gremlin> :> TinkerFactory.createModern()

这将远程创建“现代”图,并将TinkerGraph返回到Gremlin控制台。您可以访问该结果

gremlin> graph = result[0].object

:>将来自服务器的响应存储在名为“结果”的变量中,该变量在TinkerGraph中包含您的Listreference documentation中对此进行了说明。从那里可以像使用标准Gephi instructions一样使用“图形”对象。