Как настроить Titan со встроенными Cassandra и Rexster

Я пытаюсь настроить Titan (сервер 0.4.4) со встроенной Cassandra. Моя среда - 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, запуск не удался:

org.apache.cassandra.exceptions.ConfigurationException: localhost / 127.0.0.1: 7000 используется другим процессом. Измените listen_address:storage_port в cassandra.yaml на значения, которые не конфликтуют с другими службами в 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.cass service.StorageService.initServer(StorageService.java:411) в org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:278) в org.apache.cassandra.service.CassandraDaemon.activate(Cassandramon.acraate (Cassandra). в org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:409) в com.thinkaurelius.titan.diskstorage.cassandra.utils.CassandraDaemonWrapper.start(CassandraDaemonWrapper.javatisure.a.cassandra.embedded.CassandraEmbeddedStoreManager.(CassandraEmbeddedStoreManager. Java:102) в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorInjjjjj.jpg.reflect.Constructor.newInstance(Constructor.java:408) в com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:344) в com.thinkaurelius.titan.diskstorage.Backend.getImplementationjlass:36) в com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:311) в com.thinkaurelius.titan.diskstorage.Backend.(Backend.java:121) в com.thinkaurelius.titan.graphdb.configuration.getBackend(GraphDatabaseConfiguration.java:1173) в com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.(StandardTitanGraph.java:75) в com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40).thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration.configureGraphInstance(TitanGraphConfiguration.java:25) по адресу com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java:119) по адресу com.tinkerpop.rexster.configuration.conx.conf.tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRexsterApplication.java:99) в com.tinkerpop.rexster.server.XmlRexsterApplication.(XmlRexsterApplication.java:47) в com.tinkerpop.rexster.Alication.Application.jl. at com.tinkerpop.rexster.Application.main(Application.java:188) localhost/127.0.0.1:7000 используется другим процессом. Измените listen_address:storage_port в cassandra.yaml на значения, которые не конфликтуют с другими службами

Я попытался изменить порты в "E:\titan-server-0.4.4\conf\cassandra.yaml", но после некоторого исследования я понял, что порт фактически занят самой Кассандрой, то есть в этой конфигурации./bin/titan.sh -v start пытается запустить несколько экземпляров Cassandra?!

Я скопировал cassandra.yaml в cassandra2.yaml с различными настройками порта и указал путь к cassandra2.yaml в конфигурации xml графика. После этого я смог запустить Rexster со встроенными Titan и Cassandra, запустив./bin/titan.sh -v start.

Тем не менее, я твердо верю, что что-то не так с этой настройкой. Кроме того, система не ведет себя хорошо - иногда я не могу сохранить график в оболочке Gremlin от Rexster, используя g.commit() - команда выполнена успешно, но ничего не сохраняется.

Так что это правильный способ запустить Титан со встроенной Кассандрой? Какая конфигурация должна быть?

1 ответ

Решение

Если вы используете сервер Titan через скрипт shell или bat, он автоматически запустит для вас экземпляр Titan и попытается подключиться к нему через localhost. Когда вы настроили его на использование встроенной Cassandra, эти два экземпляра естественным образом конфликтуют.

Есть ли конкретная причина, по которой вы хотите использовать Cassandra Embedded. Я настоятельно рекомендую вам сначала попробовать готовую версию. Встраиваемый Cassandra в основном предназначен для приложений с малой задержкой и требует глубокого понимания JVM.

Удачи!

Другие вопросы по тегам