首页 > 解决方案 > 将本地 gephi 实例连接到远程 Titan 服务器

问题描述

这是我要解决的方案:我有两个环境:本地计算机和托管在 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,但它向我显示红点告诉我这是不可能的。我错过了什么?我很确定缺少一些步骤。提前致谢,

胡安·伊格纳西奥

标签: dockercassandragremlintitangephi

解决方案


如果您的图表是“远程的”而不是 Gremlin 控制台中的内存,那么您必须设计一种方法使其在本地可用。这种情况对于在 Gremlin Server 中运行或像 CosmosDB、DSE Graph 或 Amazon Neptune 等完全远程的 Graph 来说是典型的。

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

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

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

gremlin> :> TinkerFactory.createModern()

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

gremlin> graph = result[0].object

:>来自服务器的响应存储在名为“result”的变量中,其中包含您TinkerGraphList. 这在参考文档中进行了解释。从那里您可以像使用标准Gephi 指令一样使用该“图形”对象。


推荐阅读