下面是我想要解决的场景:我有两个环境:一个本地机器和一个托管在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和titan生态系统选择一个可视化工具。
我试图设置gephi客户端功能来连接虚拟机的ip和端口8182,但它显示了一个红点,告诉我这是不可能的。我错过了什么?我敢肯定少了几步。提前谢谢,
胡安·伊格纳西奥
1条答案
按热度按时间sy5wg1nm1#
如果您的图形是“远程”的,并且不在gremlin控制台的内存中,那么您必须设计一种方法,使它以这种方式在本地可用。这种情况对于运行在gremlin服务器上或完全远程(如cosmosdb、dse graph或amazon neptune)的图是典型的。
他们的典型方法是使用
[subgraph()][1]
-第二步,仅拉出图形中您关心的部分,并将其返回到gremlin控制台。它将作为支持subgraph()
-step(比如titan,不过我假设您会使用janusgraph),那么对于您的测试TinkerFactory
一个很小的图表,你可以这样做:请注意“remote objects.yaml”的配置,因为该配置将返回实际对象-实际
TinkerGraph
而不是小叮当的字符串表示。这将远程创建“现代”图形,并将tinkergraph返回到gremlin控制台。您可以访问该结果
这个
:>
将来自服务器的响应存储在名为“result”的变量中,该变量包含TinkerGraph
在一个List
. 参考文件对此进行了解释。在那里,您可以像使用标准gephi指令一样使用“graph”对象。