Ошибка соединения с отказом в Storm

Я новичок в Storm. Я застрял с ошибкой ниже

java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)
1178482 [Thread-11-SendThread(localhost:2000)] WARN  org.apache.zookeeper.ClientCnxn  - Session 0x1417cd58578000b for server null, unexpected error, closing socket connection and attempting reconnect

Иногда моя топология работает нормально, но когда я попробовал еще раз, я получил ошибку выше. Много искал в Google, но не смог найти никакой подсказки. Я запускаю свою топологию в локальном кластере. Пожалуйста, предложите некоторые решения

Пожалуйста, найдите больше журналов ниже: -

2595 [Thread-11-EventThread] INFO  com.netflix.curator.framework.state.ConnectionStateManager  - State change: SUSPENDED
2596 [Thread-11-EventThread] WARN  backtype.storm.cluster  - Received event :disconnected::none: with disconnected Zookeeper.
2596 [ConnectionStateManager-0] WARN  com.netflix.curator.framework.state.ConnectionStateManager  - There are no ConnectionStateListeners registered.
3592 [Thread-11-SendThread(localhost:2000)] WARN  org.apache.zookeeper.ClientCnxn  - Session 0x1417e6596c7000b for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)
3895 [Thread-11-SendThread(localhost:2000)] WARN  org.apache.zookeeper.ClientCnxn  - Session 0x1417e6596c7000b for server null, unexpected error, closing socket connection and attempting reconnect
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:90)
    at com.netflix.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:380)
    at com.netflix.curator.framework.imps.BackgroundSyncImpl$1.processResult(BackgroundSyncImpl.java:49)
    at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:617)
    at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:506)

Пожалуйста, найдите больше журнала: -

java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)
50454 [Thread-15] ERROR com.netflix.curator.ConnectionState  - Connection timed out
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
    at com.netflix.curator.ConnectionState.getZooKeeper(ConnectionState.java:72)
    at com.netflix.curator.CuratorZookeeperClient.getZooKeeper(CuratorZookeeperClient.java:74)
    at com.netflix.curator.framework.imps.CuratorFrameworkImpl.getZooKeeper(CuratorFrameworkImpl.java:353)
    at com.netflix.curator.framework.imps.ExistsBuilderImpl$2.call(ExistsBuilderImpl.java:149)
    at com.netflix.curator.framework.imps.ExistsBuilderImpl$2.call(ExistsBuilderImpl.java:138)
    at com.netflix.curator.RetryLoop.callWithRetry(RetryLoop.java:85)
    at com.netflix.curator.framework.imps.ExistsBuilderImpl.pathInForeground(ExistsBuilderImpl.java:134)
    at com.netflix.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:125)
    at com.netflix.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:34)
    at backtype.storm.zookeeper$exists_node_QMARK_.invoke(zookeeper.clj:78)
    at backtype.storm.zookeeper$exists.invoke(zookeeper.clj:117)
    at backtype.storm.cluster$mk_distributed_cluster_state$reify__1996.set_data(cluster.clj:70)
    at backtype.storm.cluster$mk_storm_cluster_state$reify__2415.worker_heartbeat_BANG_(cluster.clj:276)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
    at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
    at backtype.storm.daemon.worker$do_executor_heartbeats.doInvoke(worker.clj:35)
    at clojure.lang.RestFn.invoke(RestFn.java:439)
    at backtype.storm.daemon.worker$fn__4348$exec_fn__1228__auto____4349$fn__4352.invoke(worker.clj:346)
    at backtype.storm.timer$schedule_recurring$this__1776.invoke(timer.clj:69)
    at backtype.storm.timer$mk_timer$fn__1759$fn__1760.invoke(timer.clj:33)
    at backtype.storm.timer$mk_timer$fn__1759.invoke(timer.clj:26)
    at clojure.lang.AFn.run(AFn.java:24)
    at java.lang.Thread.run(Thread.java:680)

person user2435082    schedule 03.10.2013    source источник
comment
не могли бы вы поделиться кодом, который вы используете для запуска топологии. Что вы имеете в виду под when I tried again ? Вы получаете эту ошибку случайно?   -  person user2720864    schedule 03.10.2013
comment
TopologyBuilder tBuilder=новый TopologyBuilder(); tBuilder.setSpout(читатель оракула, новый OracleDBSourceSpout()); tBuilder.setBolt(писатель, новый WriteToFileBolt()).shuffleGrouping(оракул-читатель); Конфигурация conf=новая конфигурация(); conf.setDebug(ложь); conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING, 1); Кластер LocalCluster= новый LocalCluster(); cluster.submitTopology(Getting-Started-Topologie, conf, tBuilder.createTopology()); выше мой код топологии .... я получаю эту ошибку случайным образом ...   -  person user2435082    schedule 03.10.2013
comment
Какую версию шторма вы используете, это похоже на случай неправильного закрытия зоопарка. Вы сталкиваетесь с этой ошибкой после получения исключения при запуске вашей топологии? Также вы можете опубликовать еще несколько журналов ошибок   -  person user2720864    schedule 03.10.2013
comment
я использую версию 0.8.2. Я получаю эту ошибку при запуске моей топологии. не исключение до этого.   -  person user2435082    schedule 03.10.2013
comment
я имел в виду, что если это происходит, когда вы получаете исключение, запускающее вашу топологию (а затем пытаетесь запустить ее снова), как вы упомянули, что это случайное и непоследовательное .. вы можете посмотреть здесь с аналогичной проблемой, и кажется, что причина в неправильном завершении работы zookeeper. Если можно, выложите еще логи   -  person user2720864    schedule 03.10.2013
comment
Я добавил больше журналов в свой пост, пожалуйста, проверьте ... я, согласно моему анализу, я получаю эту ошибку, потому что этот порт не свободен и случайным образом означает, что когда он будет работать отлично, немедленно, если вы запустите снова, он покажет эту ошибку через некоторое время снова он будет работать отлично. Я не могу настроить порт, потому что я работаю в локальном режиме, поэтому вся конфигурация для соединений соответствует банкам. Поэтому я не понимаю, как решить эту ошибку.   -  person user2435082    schedule 03.10.2013
comment
Я обнаружил, что это проблема с проводной связью, с которой сталкиваются несколько человек, и я не смог найти подходящего решения для этого ... в некоторых местах люди избавляются от нее после обновления до более высокой версии (но в 0.8.2 это должно быть хорошо) ) .. Можешь попробовать запустить ExclamationTopology из проекта storm-starter в github и посмотреть, как все пойдет.. Я могу предоставить свой pom.xml с 0.8.2, если хотите.. кажется, у меня все работает нормально   -  person user2720864    schedule 04.10.2013
comment
хорошо, я попробую..спасибо за rpl   -  person user2435082    schedule 07.10.2013
comment
я пытался ответить, что вы приняли, но у меня не получилось, попробовал 2000 и 20000, но не сработало. есть ли другое решение этой проблемы или я должен изменить количество времени для Thread.sleep?   -  person    schedule 18.04.2016
comment
Вы получаете эту ошибку случайным образом или часто?.. если ее случайная основная причина в том, что порт не свободен.. вы можете попытаться освободить этот порт или либо увеличив время ожидания.. так, чтобы зоопарк правильно выключился..   -  person user2435082    schedule 19.04.2016


Ответы (1)


Я тоже только что столкнулся с этой проблемой. Моя проблема в том, что время работы слишком короткое. У смотрителя зоопарка недостаточно времени, чтобы завершить работу должным образом. Посмотрите на код ниже:

    builder.createTopology());

    try {
        Thread.sleep(20000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    cluster.shutdown();
}

Вы должны установить достаточно времени до вызова cluster.shutdown(). Сначала я поставил Thread.sleep(1000), потом возникла та же проблема, что и у вас. После того, как я изменил время, эта проблема больше не появлялась.

person laura    schedule 31.03.2014