我在Cassandra和Elasticsearch的嵌入模式下使用Titan 0.3.2。我正在使用cassandra-es.properties
中记录的配置为titan.sh
(已加入titan.bat
/ storage.backend=embeddedcassandra
storage.cassandra-config-dir=config/cassandra.yaml
storage.index.search.backend=elasticsearch
storage.index.search.directory=/tmp/searchindex
storage.index.search.client-only=false
storage.index.search.local-mode=true
):
bin/cassandra-es.local
但我正在尝试通过Gremlin客户端shell(g = TitanFactory.open("cassandra-es.local")
)为storage.backend=cassandrathrift
storage.hostname=127.0.0.1
获取正确的配置以连接到Titan服务器。如果我尝试使用下载中包含的默认版本:
Index is unknown or not configured: search
该图表不会对ES索引有任何了解(“storage.backend=cassandrathrift
storage.hostname=127.0.0.1
storage.index.search.backend=elasticsearch
storage.index.search.client-only=false
storage.index.search.directory=/tmp/cassandra/elasticsearch
”)。
如果我配置:
{{1}}
它将在另一个端口上创建一个ES实例,该实例似乎与服务器使用的端口分开存在。
我的问题:(如何)我可以设置我的Gremlin控制台以正确地与Titan嵌入式服务器通信?
答案 0 :(得分:0)
最近有一些关于Google group的讨论。看起来实际上不可能在一台机器上运行两个ES实例,因此解决此问题的一个更简单的方法是在VM上单独设置ES。
我试用了这个解决方案,它在cassandra-es.local
和titan-server-cassandra-es.properties
中的这些行都可以正常工作:
storage.index.search.backend=elasticsearch
storage.index.search.hostname=<VM ES server IP>
storage.index.search.client-only=true
我现在可以从Gremlin shell和Titan服务器访问相同的ES索引。