我正在尝试使用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:\泰坦服务器0.4.4 \的conf \ rexster-卡桑德拉 - 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正在被另一个进程使用。更改 listen_address:cassandra.yaml中的storage_port到没有的值 与其他服务冲突 在org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:439) 在org.apache.cassandra.net.MessagingService.listen(MessagingService.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.activate(CassandraDaemon.java:366) 在org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:409) 在com.thinkaurelius.titan.diskstorage.cassandra.utils.CassandraDaemonWrapper.start(CassandraDaemonWrapper.java:51) 在com.thinkaurelius.titan.diskstorage.cassandra.embedded.CassandraEmbeddedStoreManager。(CassandraEmbeddedStoreManager.java:102) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) 在com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:344) 在com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:367) 在com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:311) 在com.thinkaurelius.titan.diskstorage.Backend。(Backend.java:121) at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:1173) 在com.thinkaurelius.titan.graphdb.database.StandardTitanGraph。(StandardTitanGraph.java:75) 在com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40) 在com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration.configureGraphInstance(TitanGraphConfiguration.java:25) 在com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java: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) 在com.tinkerpop.rexster.Application。(Application.java:96) 在com.tinkerpop.rexster.Application.main(Application.java:188) localhost / 127.0.0.1:7000正在被另一个进程使用。更改 listen_address:cassandra.yaml中的storage_port到没有的值 与其他服务冲突
我试过mofiying“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。
但是,我坚信这种设置有问题。此外,系统表现不佳 - 有时我无法使用g.commit()
在Rexster(基于Web)的Gremlin shell中保存图形 - 命令成功,但没有任何保存。
使用Cassandra嵌入运行Titan的正确方法是什么?应该是什么配置?
答案 0 :(得分:3)
如果您通过shell或bat脚本使用Titan服务器,它将自动为您启动Titan实例并尝试通过localhost连接到它。 当您将其配置为使用Cassandra嵌入时,这两个实例自然会发生冲突。
您是否有特殊原因要使用Cassandra嵌入式。我强烈建议您先尝试开箱即用的版本。 Cassandra嵌入式主要用于低延迟应用程序,需要对JVM有充分的了解。
祝你好运!