【问题标题】:Titan - Cassandra - Elasticsearch :: Connection refusedTitan - Cassandra - Elasticsearch :: 连接被拒绝
【发布时间】:2015-01-21 14:59:00
【问题描述】:

我正在使用 Cassandra 2.0.8 运行 Titan 0.5.0。

当我第一次使用本地 Titan-Cassandra 运行我的 Java 客户端时,我可以连接到它。现在我使用专用用户在 Debian Wheezy 上远程部署了 Titan-Cassandra,我有一个“连接被拒绝异常”(参见下面的堆栈)。我可以通过http://my-domain.com:8182 在远程服务器上通过 Rexter 连接到 Titan,我可以看到我的顶点和边。

要对本地配置(Java 客户端和 Titan 在同一台机器上)进行哪些更改以使带有 Cassandra 和 Elasticsearch 的 Titan 在我的 Java 客户端访问的远程机器上运行?

Java 客户端代码

private final URL titanConfiguration =TitanRepository.class.getResource("/conf/titan-cassandra.properties");
public TitanGraph load() {
    return TitanFactory.open(titanConfiguration.getPath());
}

本地 Titan-Cassandra 的工作配置:

Java配置titan-cassandra.properties

storage.backend=cassandrathrift
storage.hostname=127.0.0.1
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5

index.search.backend=elasticsearch
index.search.hostname=127.0.0.1
index.search.client-only=true

schema.default=none

Titan conf 目录没有变化

无法在远程服务器上使用 Titan-Cassandra 进行 Java 配置

Java配置titan-cassandra.properties

storage.backend=cassandrathrift
storage.hostname=192.168.1.20   <<< OR http://my-domain.com
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5

index.search.backend=elasticsearch
index.search.hostname=192.168.1.20    <<< OR http://my-domain.com
index.search.client-only=true

schema.default=none

Titan conf 目录的变化

  • rexster-cassandra-es.xml:

&lt;base-uri&gt;http://my-domain.com&lt;/base-uri&gt;
&lt;index.search.hostname&gt;192.168.1.20&lt;/index.search.hostname&gt;

堆栈跟踪

java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager

    at com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:55)
    at com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:425)
    at com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:366)
    at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.<init>(GraphDatabaseConfiguration.java:1208)
    at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:92)
    at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:60)
    at be.jiliant.spotmydate.server.TitanRepository.load(TitanRepository.java:30)
    at be.jiliant.spotmydate.server.persist.processor.PersistProcessor.process(PersistProcessor.java:38)
    at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63)
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
    at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
    at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:103)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:685)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:623)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:591)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:308)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1142)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1134)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1031)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:44)
    ... 29 common frames omitted
Caused by: com.thinkaurelius.titan.diskstorage.TemporaryBackendException: Temporary failure in storage backend
    at com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager.getCassandraPartitioner(CassandraThriftStoreManager.java:218)
    at com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager.<init>(CassandraThriftStoreManager.java:196)
    ... 34 common frames omitted
Caused by: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
    at org.apache.thrift.transport.TSocket.open(TSocket.java:185)
    at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
    at com.thinkaurelius.titan.diskstorage.cassandra.thrift.thriftpool.CTConnectionFactory.makeRawConnection(CTConnectionFactory.java:87)
    at com.thinkaurelius.titan.diskstorage.cassandra.thrift.thriftpool.CTConnectionFactory.makeObject(CTConnectionFactory.java:52)
    at com.thinkaurelius.titan.diskstorage.cassandra.thrift.thriftpool.CTConnectionFactory.makeObject(CTConnectionFactory.java:21)
    at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220)
    at com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager.getCassandraPartitioner(CassandraThriftStoreManager.java:215)
    ... 35 common frames omitted
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at org.apache.thrift.transport.TSocket.open(TSocket.java:180)
    ... 41 common frames omitted

【问题讨论】:

  • 其实我不是很明白 Titan、Rexter、Cassandra 和 Elasticsearch 是如何一起启动和运行的。有什么好的教程可以让我理解这些概念吗?还是应该单独启动和配置所有这些组件?

标签: java titan


【解决方案1】:

如果 Rexster 在同一个(远程)机器上运行并且可以连接,但您无法从本地计算机连接,则很可能是 Cassandra 配置问题。在cassandra.yaml 中设置rpc_address0.0.0.0(目前你可能已经设置为127.0.0.1),重启Cassandra 并尝试再次连接。

【讨论】:

  • 它没有帮助。我尝试在listen_address中结合本地主机或盒子的ip
  • 你能在 Gist 中分享你的 cassandra.yaml 吗?我敢打赌,任何与 IP 相关的设置都是错误的(也可能是 listen_addressbroadcast_addressseeds;后者在 Cassandra 启动时不会出现错误)。
  • 我的 cassandra.yaml 和 rexter-cassandra-es.xml 都可以在 gist 获得。在 rexter-cassandra-es.xml 我更改了 2 个参数 base-uri 和 storage.hostname
  • listen_addresslocalhost,我认为这行不通。尝试将主机的公共或私有 IP (192.168.1.20?) 用于 listen_addressseeds
  • 我已经在listen_address中尝试了我的主机的公共IP。我没有尝试改变种子,但这可能是问题所在。我在客户端看到了环周围的故障。我会尽快更改此内容并随时通知您。谢谢
猜你喜欢
  • 2023-03-15
  • 2015-05-21
  • 2018-02-11
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 2021-03-29
  • 2018-11-23
相关资源
最近更新 更多