我正在尝试设置嵌入 Cassandra 的 Titan(服务器 0.4.4)。我的环境是 Windows 8.1 x64 + Cygwin。安装在 E:\titan-server-0.4.4 中。
我还需要能够通过 Rexster 访问此设置。
对于我的配置,我参考了https://github.com/thinkaurelius/titan/wiki/Using-Cassandra。我已将图形配置 E:\titan-server-0.4.4\conf\rexster-cassandra-es.xml 图形部分修改为
<graph>
<graph-name>graph</graph-name>
<graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type>
<graph-read-only>false</graph-read-only>
<properties>
<auto-type>none</auto-type>
<storage.batch-loading>true</storage.batch-loading>
<storage.cassandra-config-dir>file:///E:\titan-server-0.4.4\conf\cassandra.yaml</storage.cassandra-config-dir>
<storage.backend>embeddedcassandra</storage.backend>
<storage.index.search.backend>elasticsearch</storage.index.search.backend>
<storage.index.search.directory>../db/es</storage.index.search.directory>
<storage.index.search.client-only>false</storage.index.search.client-only>
<storage.index.search.local-mode>true</storage.index.search.local-mode>
</properties>
<extensions>
<allows>
<allow>tp:gremlin</allow>
</allows>
</extensions>
</graph>
(笔记
<auto-type>none</auto-type>
<storage.batch-loading>true</storage.batch-loading>
这些是允许批量插入。嵌入式 Cassandra 的整个想法是提高插入性能。)
但是,当我尝试使用 ./bin/titan.sh -v start 启动服务时,启动失败:
org.apache.cassandra.exceptions.ConfigurationException: localhost/127.0.0.1:7000 正在被另一个进程使用。将 cassandra.yaml 中的 listen_address:storage_port 更改为不与 org.apache.cassandra.net.MessagingService.listen(MessagingService 的 org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:439) 中的其他服务冲突的值.java:387) 在 org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:549) 在 org.apache.cassandra.service.StorageService.initServer(StorageService.java:514) 在 org.apache.cassandra。 service.StorageService.initServer(StorageService.java:411) 在 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:278) 在 org.apache.cassandra.service.CassandraDaemon。119) 在 com.tinkerpop.rexster.config.GraphConfigurationContainer.(GraphConfigurationContainer.java:54) 在 com.tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRexsterApplication.java:99) 在 com.tinkerpop.rexster.server.XmlRexsterApplication。 (XmlRexsterApplication.java:47) at com.tinkerpop.rexster.Application.(Application.java:96) at com.tinkerpop.rexster.Application.main(Application.java:188) localhost/127.0.0.1:7000 正在使用中通过另一个过程。将 cassandra.yaml 中的 listen_address:storage_port 更改为不与其他服务冲突的值 tinkerpop.rexster.server.XmlRexsterApplication.(XmlRexsterApplication.java:47) at com.tinkerpop.rexster.Application.(Application.java:96) at com.tinkerpop.rexster.Application.main(Application.java:188) localhost/ 127.0.0.1:7000 正在被另一个进程使用。将 cassandra.yaml 中的 listen_address:storage_port 更改为不与其他服务冲突的值 tinkerpop.rexster.server.XmlRexsterApplication.(XmlRexsterApplication.java:47) at com.tinkerpop.rexster.Application.(Application.java:96) at com.tinkerpop.rexster.Application.main(Application.java:188) localhost/ 127.0.0.1:7000 正在被另一个进程使用。将 cassandra.yaml 中的 listen_address:storage_port 更改为不与其他服务冲突的值
我尝试在“E:\titan-server-0.4.4\conf\cassandra.yaml”中修改端口,但经过一番调查,我意识到该端口实际上是由 Cassandra 本身占用的,即在此配置中,. /bin/titan.sh -v start 尝试启动多个 Cassandra 实例?!
我使用不同的端口设置将 cassandra.yaml 复制到 cassandra2.yaml,并在图形配置 xml 中指定了 cassandra2.yaml 的路径。之后,我可以通过运行 ./bin/titan.sh -v start 来启动嵌入了 Titan 和 Cassandra 的 Rexster。
但是,我坚信这个设置有问题。此外,系统表现不佳 - 有时我无法通过使用将图形保存在 Rexster 的(基于 Web 的)Gremlin shell 中g.commit()
- 命令成功,但没有保存任何内容。
那么在嵌入 Cassandra 的情况下运行 Titan 的正确方法是什么?应该是什么配置?