2010-07-02 67 views
1

當我嘗試連接到我的java應用程序中的cassandra時,在此消息結尾處收到異常。我正在使用pelops庫訪問數據庫。數據庫是工作在Linux和我的開發環境是在WINDOS 7 Intresting線無法連接到cassandra:NodeContext爲會話查殺所有連接的連接

警告:10.0.0.7 NodeContext殺死所有池連接會話44

10.0.0.7的卡桑德拉節點的IP 。我可以將這個節點與cassandra-cli連接起來。經過幾個小時的谷歌搜索,我決定問,我做錯了什麼? 完整的堆棧跟蹤如下。

重度:org.apache.thrift.transport.TTransportException:java.net.ConnectException:連接被拒絕:在org.apache.thrift.transport.TSocket.open(TSocket.java:185) 連接 的組織。 wyki.cassandra.pelops.ThriftPool $ Connection.open(ThriftPool.java:329) at org.wyki.cassandra.pelops.ThriftPool $ NodeContext.createConnection(ThriftPool.java:438) at org.wyki.cassandra.pelops。 ThriftPool $ NodeContext.access $ 5(ThriftPool.java:429) at org.wyki.cassandra.pelops.ThriftPool $ NodeContext $ 1.run(ThriftPool.java:494) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask( ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor $ Worker.r (java.lang.Thread.run(Thread.java:619) )導致:java.net.ConnectException:連接被拒絕:連接 在java.net.PlainSocketImpl.socketConnect(本機方法) 在java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) 在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) 在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) 在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at org .apache.thrift.transport.TSocket.open(TSocket.java:180) ... 7更多

警告:10.0.0.7 NodeContext殺死所有池連接會話44

回答

1

「拒絕連接」是指卡桑德拉就是不聽,你要連接到的接口。默認情況下,Cassandra偵聽localhost上的端口9160。如果你想外部連接,你需要改變它;在配置文件中閱讀ThriftAddress的註釋。

+0

它正在偵聽9160,一個主機0.0.0.0連接到Cassandra的實例,我可以將它連接卡桑德拉-CLI從遠程machine.So這不是問題。 – Deniz 2010-07-04 11:38:02

0

看起來這是一個pelops的問題,它是cassandra的節儉客戶端上的一個庫。它有一些連接Cassandra在Windows機器上的Linux和客戶機上的問題。

1

當涉及到與Cassandra的連接時,Pelops並沒有做任何異常棘手的事情,所以看起來似乎不太可能是Pelops特有的。

我剛剛有了一個快速瀏覽一下赫克託連接代碼,它看起來幾乎相同: https://github.com/rantav/hector/blob/master/core/src/main/java/me/prettyprint/cassandra/connection/HThriftClient.java

卡桑德拉-CLI代碼看起來非常相同的還有: https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/cli/CliMain.java#L57

PS Cassandra 不應將配置爲在0.0.0.0上偵聽。請參閱「爲什麼我無法讓Cassandra在0.0.0上收聽。?0(我所有的地址)」。在卡桑德拉FAQ

0

我已經得到了同樣的異常與連接 「的任何」 客戶端遠程卡桑德拉:

的ConnectException:連接被拒絕

仔細閱讀cassandra.yaml中的cassandra文檔和評論 - 它們非常方便!

因此,對於我工作以下內容: 更改rpc_address價值的主機名或ip地址使用的是與客戶