如何启动 Titan 图形服务器并与 gremlin 连接?
Posted
技术标签:
【中文标题】如何启动 Titan 图形服务器并与 gremlin 连接?【英文标题】:How to start Titan graph server and connect with gremlin? 【发布时间】:2013-04-30 03:08:00 【问题描述】:我玩Titan graph server 已经有一段时间了。我的感觉是,尽管有大量文档,但缺少从头开始教程。
我的最终目标是让一个泰坦在 cassandra 上运行并使用 StartTheShift/thunderdome 进行查询。
我见过几种启动 Titan 的方法:
使用 Rexster
来自this link,我能够通过以下步骤运行一个 Titan 服务器:
-
下载rexster-server 2.3
下载titan 0.3.0
将所有文件从
titan-all-0.3.0/libs
复制到rexster-server-2.3.0/ext/titan
编辑 rexster-server-2.3.0/rexster.xml
并添加(在 a 之间):
<graph>
<graph-name>geograph</graph-name>
<graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type>
<graph-read-only>false</graph-read-only>
<graph-location>/Users/vallette/projects/DATA/gdb</graph-location>
<properties>
<storage.backend>local</storage.backend>
<storage.directory>/Users/vallette/projects/DATA/gdb</storage.directory>
<buffer-size>100</buffer-size>
</properties>
<extensions>
<allows>
<allow>tp:gremlin</allow>
</allows>
</extensions>
</graph>
对于 berkeleydb 或:
<graph>
<graph-name>geograph</graph-name>
<graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type>
<graph-location></graph-location>
<graph-read-only>false</graph-read-only>
<properties>
<storage.backend>cassandra</storage.backend>
<storage.hostname>77.77.77.77</storage.hostname>
</properties>
<extensions>
<allows>
<allow>tp:gremlin</allow>
</allows>
</extensions>
</graph>
对于 cassandra 数据库。
-
使用
./bin/rexster.sh -s -c rexster.xml
启动服务器
下载 rexster 控制台并使用bin/rexster-console.sh
运行它
您现在可以使用g = rexster.getGraph("geograph")
连接到您的图表
此方法的问题在于您是通过 rexster 而不是 gremlin 连接的,因此您没有自动完成功能。优点是您可以命名您的数据库(此处为地理)。
将 Titan 服务器与 cassandra 一起使用
-
用
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
启动服务器
创建一个名为 cassandra.local
的文件
storage.backend=cassandrathrift
storage.hostname=127.0.0.1
启动 titan gremlin 并连接到 g = TitanFactory.open("cassandra-es.local")
这很好用。
在 BerkeleyDB 中使用 Titan 服务器
来自this link:
-
下载titan 0.3.0
用
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
启动服务器
启动泰坦小精灵:./bin/gremlin.sh
但是一旦我尝试使用g = TitanFactory.open('graph')
连接到 gremlin 中的数据库(图形),它就会在我所在的目录中创建一个名为 graph 的新数据库。如果我在我的目录(已填充)所在的位置执行此操作,我会得到:
无法实例化实现:com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEStoreManager
有人可以澄清这些过程,并告诉我我做错了什么。 谢谢
【问题讨论】:
【参考方案1】:根据文档TitanFactory.open()
采用配置文件的名称或要在其中打开或创建数据库的目录的名称。
如果 steven 说的是真的,有两种方法可以通过 BerkelyDB 后端连接到数据库:
通过bin/titan.sh
启动数据库。通过 rexster 控制台连接到数据库。
不要使用bin/titan.sh
启动数据库。请改用 gremlin 控制台:TitanFactory.open("database-location")
。这将打开数据库。但这没有 rexster 服务器。除了 gremlin 控制台,没有其他东西可以访问数据库。
【讨论】:
【参考方案2】:对于 Titan Server/BerkeleyDB,您应该尝试通过 RexPro 或 REST 进行连接(Thunderdome 应该通过 REST 进行连接)。您无法打开另一个与 BerkeleyDB 的基于 Titan 的连接,因为 Titan 服务器已经拥有它。
这与 Titan Server/Cassandra 不同,后者通过 RexPro 或 REST 进行连接,但也通过嵌入式 Cassandra 实现连接,通过 TitanFactory.open('graph')
实现连接
【讨论】:
【参考方案3】:也可以使用这两个库从 python 访问 Titan:
https://github.com/StartTheShift/thunderdome
和
https://github.com/espeed/bulbs.
Thunderdome 目前是 Titan 专用的,而灯泡是通用的。 Thunderdome 的 wiki 上给出了 Thunderdome 和 Bulbs 之间的(可能有偏见的)比较:https://github.com/StartTheShift/thunderdome/wiki/Bulbs-VS-thunderdome
如果您需要自动完成,您可以使用 iPython 并在您的 iPython 配置中启用自动完成。
【讨论】:
以上是关于如何启动 Titan 图形服务器并与 gremlin 连接?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 .net mvc 中使用 c# 创建和删除边缘属性(Titan 1.0)?
为啥 Rexster Server(和 Titan)停止响应?