Не удается подключиться к cassandra: NodeContext уничтожает все пулы соединений для сеанса - PullRequest
1 голос
/ 02 июля 2010

Когда я пытаюсь подключиться к cassandra в моем java-приложении, я получаю исключение в конце этого сообщения.Я использую библиотеку Pelops для доступа к базе данных.База данных работает на linux, а моя среда разработки на windos 7. Интересная линия:

ПРЕДУПРЕЖДЕНИЕ: 10.0.0.7 NodeContext уничтожает все соединения в пуле для сеанса 44

10.0.0.7 - это IP-адрес узла Кассандры.И я могу связать этот узел с Cassandra-Cli.После нескольких часов поисков я решил спросить, что я делаю не так?Полная трассировка стека приведена ниже.

SEVERE: org.apache.thrift.transport.TTransportException: java.net.ConnectException: в соединении отказано: соединение в org.apache.thrift.transport.TSocket.open (TSocket.java: 185) в org.wyki.cassandra.pelops.ThriftPool $ Connection.open (ThriftPool.java:329) в org.wyki.cassandra.pelops.ThriftPool $ NodeContext.createConnection (ThriftPool.javag: at. At. Org.cassandra.pelops.ThriftPool $ NodeContext.access $ 5 (ThriftPool.java:429) в org.wyki.cassandra.pelops.ThriftPool $ NodeContext $ 1.run (ThriftPool.java:494) в рабочей среде javarent.exec.runTask (ThreadPoolExecutor.java:886) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908) в 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) на java.net.Socket.connect (Socket.java:529) на java.net.Socket.connect (Socket.java:478) на org.apache.thrift.transport.TSocket.open (TSocket.java:180) ... еще 7

ПРЕДУПРЕЖДЕНИЕ: 10.0.0.7 NodeContext уничтожает все пулы соединений для сеанса 44

Ответы [ 4 ]

1 голос
/ 02 апреля 2011

Пелопс не делает ничего сложного в удалении, когда речь идет о подключении к Cassandra, поэтому кажется маловероятным, что он специфичен для Пелопса.

Я только что быстро взглянул на код подключения Гектора и он выглядитПримерно то же самое: https://github.com/rantav/hector/blob/master/core/src/main/java/me/prettyprint/cassandra/connection/HThriftClient.java

Код Cassandra-Cli выглядит примерно так же: https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/cli/CliMain.java#L57

PS Cassandra не должен быть настроен на для прослушиванияна 0.0.0.0.См. «Почему я не могу заставить Кассандру слушать 0.0.0.0 (все мои адреса)?»на Cassandra FAQ.

1 голос
/ 03 июля 2010

«Отказ в соединении» означает, что Cassandra не прослушивает интерфейс, к которому вы подключаетесь. По умолчанию Cassandra прослушивает порт 9160 на локальном хосте. Вам нужно будет изменить это, если вы хотите подключиться извне; Прочитайте комментарии для ThriftAddress в файле конфигурации.

0 голосов
/ 09 августа 2012

У меня такое же исключение при удаленном соединении с «любым» клиентом:

ConnectException: в соединении отказано

Просматривая SO, я не смог найти быстрого решения для этого, просто внимательно прочитав документы и комментарии cassandra в cassandra.yaml - они очень удобны!

Так у меня работали следующие: измените значение rpc_address на имя хоста или ipaddress, которое вы используете для подключения к экземпляру cassandra с клиентом

0 голосов
/ 15 июля 2010

Кажется, что это проблема с pelops, который является библиотекой над клиентом Кассандры.У него есть некоторые проблемы с подключением к Cassandra, работающему на Linux и клиенте на машине с Windows.

...