我正在尝试设置泰坦(服务器0.4.4)卡桑德拉嵌入。我的环境是Windows8.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/Tit.sh -v start启动服务时,启动失败的原因如下:
org.apache.cassandra.exceptions.ConfigurationException: localhost/127.0.0.1:7000正在由另一个进程使用。在org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:439) at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:387) at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:549) at org.apache.cassandra.service.StorageService.initServer(StorageService.java:514)将cassandra.yaml中的listen_address:storage_port更改为不与其他服务冲突的值在org.apache.cassandra.service.StorageService.initServer(StorageService.java:411) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:278) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:366) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:409) at 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) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:344) at com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:367) at com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:311) at com.thinkaurelius.titan.diskstorage.Backend.(Backend.java:121) at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:1173) at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.(StandardTitanGraph.java:75) at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40) at com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration.configureGraphInstance(TitanGraphConfiguration.java:25) at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java:119) at com.tinkerpop.rexster.config.GraphConfigurationContainer.(GraphConfigurationContainer.java:54) at com。tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRexsterApplication.java:99) at 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中的cassandra.yaml更改为不与其他服务冲突的值
我试着在“E:\titan-server-0.4.4\conf\curandra.yaml”中移动端口,但经过一些调查后,我意识到端口实际上是由Cassandra本身占据的,即在这种配置中./bin/titan.sh -v开始尝试启动多个Cassandra实例?!
我在图配置xml中使用不同的端口设置和指定的路径将cassandra.yaml复制到curandra2.yaml。在此之后,我能够通过运行./bin/titan.sh -v start启动嵌入泰坦和卡桑德拉的Rexster。
然而,我坚信这个设置有问题。此外,系统的行为也不太好--有时我不能使用g.commit()在Rexster(基于Web的) Gremlin中保存一个图形--命令成功了,但是没有保存任何东西。
因此,是运行土卫六的正确方式,嵌入了卡桑德拉?配置应该是什么?
发布于 2014-05-31 03:11:59
如果您通过shell或bat脚本使用Titan服务器,它将自动为您启动一个Titan实例,并尝试通过本地主机连接到它。当您将其配置为使用Cassandra嵌入式时,这两个实例自然会发生冲突。
有什么特别的原因你想使用卡桑德拉嵌入式。我强烈建议你先试试开箱即用的版本。Cassandra embedded主要用于低延迟应用程序,并且需要对JVM有一个扎实的理解。
祝好运!
https://stackoverflow.com/questions/23796400
复制相似问题