我已经和Titan graph server玩了一段时间了。我的感觉是,尽管有大量文档,但缺少从头开始教程。
我的最终目标是使用cassandra运行titan并使用StartTheShift/thunderdome进行查询。
我见过几种启动泰坦的方法:
来自this link,我能够通过以下步骤运行titan服务器:
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 db。
./bin/rexster.sh -s -c rexster.xml
bin/rexster-console.sh
g = rexster.getGraph("geograph")
此方法的问题在于您通过rexster连接而不是gremlin,因此您没有自动完成功能。优点是您可以命名您的数据库(此处为地理位置)。
./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")
这很好。
来自this link:
./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
有人可以澄清这些过程,并告诉我我做错了什么。 感谢
答案 0 :(得分:5)
根据文档TitanFactory.open()
获取配置文件的名称或要打开或创建数据库的目录名称。
如果史蒂文说的是真的,那么有两种方法可以通过BerkelyDB后端连接到数据库:
通过bin/titan.sh
启动数据库。通过rexster控制台连接到数据库。
请勿使用bin/titan.sh
启动数据库。请改用gremlin控制台:TitanFactory.open("database-location")
。这将打开数据库。但是这没有rexster服务器。除了gremlin控制台之外,没有其他任何东西能够访问数据库。
答案 1 :(得分:1)
使用Titan Server / BerkeleyDB,您应该尝试通过RexPro或REST进行连接(Thunderdome应通过REST连接)。您无法打开另一个基于Titan的连接到BerkeleyDB,因为Titan Server已经拥有它。
这与Titan Server / Cassandra不同,后者通过RexPro或REST进行连接,但也通过嵌入式Cassandra实现连接,通过TitanFactory.open('graph')
答案 2 :(得分:1)
也可以使用这两个库从python访问Titan:
https://github.com/StartTheShift/thunderdome
和
https://github.com/espeed/bulbs
Thunderdome目前是Titan特有的,灯泡是通用的。在Thunderdome的维基上给出了Thunderdome和Bulbs之间的一个(可能是有偏见的)比较:https://github.com/StartTheShift/thunderdome/wiki/Bulbs-VS-thunderdome
如果您需要自动完成,可以使用iPython并在iPython配置中启用自动完成功能。