2016-04-15 6 views
5

У меня есть топология, которая хорошо работает на Локальный кластер. Но когда я пытаюсь запустить его на производственный кластер следующие вещи происходит:Ошибка при выполнении топологии в производственном кластере с Apache Storm 1.0.0, топология не начинается

  1. нимб вверх
  2. шторм UI вверх
  3. Два рабочих я использую до
  4. Zookeper вверх
  5. Я бегу шторм с

    штормовой баночка myJar.jar MyClass

  6. Nimbus представляет топологии

  7. топологий и рабочие появляется в штормовой UI

НО:

Топология не начинается, несмотря на то, что его статус ACTIVE

Файл журнала топологии не отображается i Рабочие.

У меня есть следующий журнал в работнике на supervisor.log:

2016-04-15 13:18:19.831 o.a.s.d.supervisor [WARN] There was a connection problem with nimbus. #error { 
:cause jobs-rec-storm-nimbus 
:via 
[{:type java.lang.RuntimeException 
    :message org.apache.storm.thrift.transport.TTransportException: java.net.UnknownHostException: jobs-rec-storm-nimbus 
    :at [org.apache.storm.security.auth.TBackoffConnect retryNext TBackoffConnect.java 64]} 
    {:type org.apache.storm.thrift.transport.TTransportException 
    :message java.net.UnknownHostException: jobs-rec-storm-nimbus 
    :at [org.apache.storm.thrift.transport.TSocket open TSocket.java 226]} 
    {:type java.net.UnknownHostException 
    :message jobs-rec-storm-nimbus 
    :at [java.net.AbstractPlainSocketImpl connect AbstractPlainSocketImpl.java 184]}] 
:trace 
[[java.net.AbstractPlainSocketImpl connect AbstractPlainSocketImpl.java 184] 
    [java.net.SocksSocketImpl connect SocksSocketImpl.java 392] 
    [java.net.Socket connect Socket.java 589] 
    [org.apache.storm.thrift.transport.TSocket open TSocket.java 221] 
    [org.apache.storm.thrift.transport.TFramedTransport open TFramedTransport.java 81] 
    [org.apache.storm.security.auth.SimpleTransportPlugin connect SimpleTransportPlugin.java 103] 
    [org.apache.storm.security.auth.TBackoffConnect doConnectWithRetry TBackoffConnect.java 53] 
    [org.apache.storm.security.auth.ThriftClient reconnect ThriftClient.java 99] 
    [org.apache.storm.security.auth.ThriftClient <init> ThriftClient.java 69] 
    [org.apache.storm.utils.NimbusClient <init> NimbusClient.java 106] 
    [org.apache.storm.utils.NimbusClient getConfiguredClientAs NimbusClient.java 78] 
    [org.apache.storm.utils.NimbusClient getConfiguredClient NimbusClient.java 41] 
    [org.apache.storm.blobstore.NimbusBlobStore prepare NimbusBlobStore.java 268] 
    [org.apache.storm.utils.Utils getClientBlobStoreForSupervisor Utils.java 462] 
    [org.apache.storm.daemon.supervisor$fn__9590 invoke supervisor.clj 942] 
    [clojure.lang.MultiFn invoke MultiFn.java 243] 
    [org.apache.storm.daemon.supervisor$mk_synchronize_supervisor$this__9351$fn__9369 invoke supervisor.clj 582] 
    [org.apache.storm.daemon.supervisor$mk_synchronize_supervisor$this__9351 invoke supervisor.clj 581] 
    [org.apache.storm.event$event_manager$fn__8903 invoke event.clj 40] 
    [clojure.lang.AFn run AFn.java 22] 
    [java.lang.Thread run Thread.java 745]]} 
2016-04-15 13:18:19.831 o.a.s.d.supervisor [INFO] Finished downloading code for storm id jobs-KafkaMigration-topology-3-1460740616 
2016-04-15 13:18:19.850 o.a.s.d.supervisor [INFO] Missing topology storm code, so can't launch worker with assignment ...(some more numbers) 

Так что я предполагаю, что у меня есть проблемы соединения с нимбом, но файл свойств в работнике:

storm.zookeeper.servers: 
    - "192.168.22.209" 
    - "192.168.22.216" 
    - "192.168.22.217" 

storm.local.dir: "/app/home/storm" 


storm.zookeeper.root: "/storm-prod" 

# 
nimbus.seeds: ["192.168.120.96"] 

И если я делаю пинг с нимбом ф от рабочих, он возвращает OK

Где ошибка, как я могу ее исправить?

Спасибо!

ответ

2

Я столкнулся с подобной проблемой. Оказывается, мои правила брандмауэра блокировали порты супервизора. Убедитесь, что руководитель и нимб могут разговаривать друг с другом.

+0

Привет @ shashank спасибо за ответ !, Я не знаю, почему, но когда я вставил сопоставление dns в ips, началась топология. Что-то странное происходит, когда вы используете только ips. –

6

Что по-видимому, происходит в этом контексте является то, что Сторм руководитель решает нимб из любых сконфигурировано в семенах storm.yaml/хосте время первого и с тех пор использует нимб имени хоста для загрузки топологии артефактов.

Если это правильно, DNS является обязательным для настройки кластера. Это далеко не идеально, особенно при использовании контейнеров в организованной среде, такой как кубернеты.

Текущих обходной путь я использую это добавление

storm.local.hostname: "<local.ip.value>" 

к буру.YAML

Благодаря @bastien, предоставивший наконечник на список рассылки пользователя шторм

+0

Сообщаемое поведение с v1.0.0. Не заметили, что с v0.10.0. – Alberto

+0

Привет Alberto.Csm, я думаю, что вы правы, я использовал 0.10.0 и обновлялся до 1.0.0, но я не могу подтвердить это, потому что я не пытался откат (и теперь моя система находится в производстве) –

+0

v1.0.1 имеют ту же проблему, работает после добавления конфигурации. – smartwjw

0

я обнаружил, что мне нужно иметь имена хостов боксах соответствует тому, что я называл их в/и т.д./файл хостов

в хост-файл я имел

xxx.xxx.xxx.xxx нимб

но имя хоста на поле было по-другому, и он тянул имя хоста из зева

изменение имени хоста на серверах nimbus разрешило мою проблему.