3

I have installed Apache-Storm using docker compose

docker-compose.yml:

kafka:
    image: spotify/kafka
    ports:
      - "9092:9092"
      - "2181:2181"
    environment:
      ADVERTISED_HOST: 172.16.8.37
      ADVERTISED_PORT: 9092

nimbus:
  command: --daemon nimbus drpc
  image: fhuz/docker-storm
  ports:
    - 3773:3773
    - 3772:3772
    - 6627:6627
  links:
    - kafka:zk

supervisor:
  command: --daemon supervisor logviewer
  image: fhuz/docker-storm
  ports:
    - 8000:8000
    - 6700:6700
    - 6701:6701
    - 6702:6702
    - 6703:6703
  links:
    - kafka:zk
ui:
  command: --daemon ui
  image: fhuz/docker-storm
  ports:
    - 8080:8080
  links:
    - kafka:zk

elasticsearch:
  image: elasticsearch:2.4.1
  ports:
    - 9300:9300
    - 9200:9200

I run and there are no problems, then when I Access to the Storm-UI: XXXX.XX.XX.XX:8080 there is the Storm UI, but It throws the next error:

I have try some answers and solutions of other users of StackOverflow but it still failing.

Internal Server Error:
org.apache.storm.utils.NimbusLeaderNotFoundException: Could not find leader nimbus from seed hosts ["127.0.0.1"]. Did you specify a valid list of nimbus hosts for config nimbus.seeds?
    at org.apache.storm.utils.NimbusClient.getConfiguredClientAs(NimbusClient.java:90)
    at org.apache.storm.ui.core$nimbus_summary.invoke(core.clj:388)
    at org.apache.storm.ui.core$fn__12489.invoke(core.clj:937)
    at org.apache.storm.shade.compojure.core$make_route$fn__4604.invoke(core.clj:93)
    at org.apache.storm.shade.compojure.core$if_route$fn__4592.invoke(core.clj:39)
    at org.apache.storm.shade.compojure.core$if_method$fn__4585.invoke(core.clj:24)
    at org.apache.storm.shade.compojure.core$routing$fn__4610.invoke(core.clj:106)
    at clojure.core$some.invoke(core.clj:2570)
    at org.apache.storm.shade.compojure.core$routing.doInvoke(core.clj:106)
    at clojure.lang.RestFn.applyTo(RestFn.java:139)
    at clojure.core$apply.invoke(core.clj:632)
    at org.apache.storm.shade.compojure.core$routes$fn__4614.invoke(core.clj:111)
    at org.apache.storm.shade.ring.middleware.json$wrap_json_params$fn__11958.invoke(json.clj:56)
    at org.apache.storm.shade.ring.middleware.multipart_params$wrap_multipart_params$fn__5680.invoke(multipart_params.clj:103)
    at org.apache.storm.shade.ring.middleware.reload$wrap_reload$fn__11140.invoke(reload.clj:22)
    at org.apache.storm.ui.helpers$requests_middleware$fn__5907.invoke(helpers.clj:46)
    at org.apache.storm.ui.core$catch_errors$fn__12679.invoke(core.clj:1224)
    at org.apache.storm.shade.ring.middleware.keyword_params$wrap_keyword_params$fn__5611.invoke(keyword_params.clj:27)
    at org.apache.storm.shade.ring.middleware.nested_params$wrap_nested_params$fn__5651.invoke(nested_params.clj:65)
    at org.apache.storm.shade.ring.middleware.params$wrap_params$fn__5582.invoke(params.clj:55)
    at org.apache.storm.shade.ring.middleware.multipart_params$wrap_multipart_params$fn__5680.invoke(multipart_params.clj:103)
    at org.apache.storm.shade.ring.middleware.flash$wrap_flash$fn__5866.invoke(flash.clj:14)
    at org.apache.storm.shade.ring.middleware.session$wrap_session$fn__5854.invoke(session.clj:43)
    at org.apache.storm.shade.ring.middleware.cookies$wrap_cookies$fn__5782.invoke(cookies.clj:160)
    at org.apache.storm.shade.ring.util.servlet$make_service_method$fn__5488.invoke(servlet.clj:127)
    at org.apache.storm.shade.ring.util.servlet$servlet$fn__5492.invoke(servlet.clj:136)
    at org.apache.storm.shade.ring.util.servlet.proxy$javax.servlet.http.HttpServlet$ff19274a.service(Unknown Source)
    at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:654)
    at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
    at org.apache.storm.logging.filters.AccessLoggingFilter.handle(AccessLoggingFilter.java:47)
    at org.apache.storm.logging.filters.AccessLoggingFilter.doFilter(AccessLoggingFilter.java:39)
    at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
    at org.apache.storm.shade.org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)
    at org.apache.storm.shade.org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)
    at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
    at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
    at org.apache.storm.shade.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
    at org.apache.storm.shade.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
    at org.apache.storm.shade.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
    at org.apache.storm.shade.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.apache.storm.shade.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.apache.storm.shade.org.eclipse.jetty.server.Server.handle(Server.java:369)
    at org.apache.storm.shade.org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
    at org.apache.storm.shade.org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
    at org.apache.storm.shade.org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
    at org.apache.storm.shade.org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
    at org.apache.storm.shade.org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.apache.storm.shade.org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.apache.storm.shade.org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
    at org.apache.storm.shade.org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.apache.storm.shade.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.apache.storm.shade.org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:745)
Asier Gomez
  • 6,034
  • 18
  • 52
  • 105

2 Answers2

3

Your Supervisor and Nimbus are running on different machines. By default, Storm looks for Nimbus on localhost using this parameter:

nimbus.seeds : ["localhost"]

That's the error you get, it cannot find Nimbus on the local machine. You need to add that field under the Supervisor, with the IP of the machine running the Nimbus process.

David Guyon
  • 2,759
  • 1
  • 28
  • 40
ohad edelstain
  • 1,425
  • 2
  • 14
  • 22
  • Doing this works fine, but I have to change in the links instead of using the kafka zookeeper, use a container of zookeeper: Links: -zookeeper:zk – Asier Gomez Nov 16 '16 at 11:43
  • Then add this: (use the external_links part) links: - nimbus:nimbus external_links: - storm_zookeeper_1:zk Took it from the creator of the image: https://github.com/fhussonnois/docker-storm/blob/master/docker-storm.yml good luck – ohad edelstain Nov 16 '16 at 11:56
2

Make sure you have started your Zookeeper server and client before running Storm:

$ bin/zkServer.sh start
$ bin/zkCli.sh
David Guyon
  • 2,759
  • 1
  • 28
  • 40
Asive Dlaba
  • 161
  • 1
  • 4