You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Chun Yuen Lim <li...@siswa.um.edu.my> on 2015/05/04 08:36:14 UTC

Unable to use remote slave node in Apache Storm cluster

I'm following
http://jayatiatblogs.blogspot.com/2011/11/storm-installation.html to try
configuring Apache Storm remote cluster using few virtual machine (EC2)
with Ubuntu 14.04 LTS on Amazon Web Services.

My master node is 10.0.0.230, my slave node is 10.0.0.79. My zookeeper
reside in my master node. When I use ***storm jar
storm-starter-0.9.4-jar-with-dependencies.jar storm.starter.RollingTopWords
production-topology remote*** in master node, the message below appear,
indicating it is successfully submitted:

    339  [main] INFO  storm.starter.RollingTopWords - Topology name:
production-topology
    377  [main] INFO  storm.starter.RollingTopWords - Running in remote
(cluster) mode
    651  [main] INFO  backtype.storm.StormSubmitter - Jar not uploaded to
master yet. Submitting jar...
    655  [main] INFO  backtype.storm.StormSubmitter - Uploading topology
jar storm-starter-0.9.4-jar-with-dependencies.jar to assigned location:
/home/ubuntu/storm/data/nimbus/inbox/stormjar-380bb1a2-1699-4ad1-8341-3d4b92c14764.jar
    672  [main] INFO  backtype.storm.StormSubmitter - Successfully uploaded
topology jar to assigned location:
/home/ubuntu/storm/data/nimbus/inbox/stormjar-380bb1a2-1699-4ad1-8341-3d4b92c14764.jar
    672  [main] INFO  backtype.storm.StormSubmitter - Submitting topology
production-topology in distributed mode with conf {"topology.debug":true}
    714  [main] INFO  backtype.storm.StormSubmitter - Finished submitting
topology: production-topology

The Stoum UI & ***storm list*** command show that the topology is active:

    Topology_name        Status     Num_tasks  Num_workers  Uptime_secs
    -------------------------------------------------------------------
    production-topology  ACTIVE     0          0            59

However, in the *Cluster Summary* of Storm UI, there is 0 supervisor, 0
used slots, 0 free slots, 0 executors & 0 tasks. In the *Topology
Configuration*, the **supervisor.slots.ports** show that it uses the
default supervisor slot ports of the master node, instead of the supervisor
slot ports of the slave node.

Below are my **zoo.cfg** of my master node:

    tickTime=2000
    dataDir=/home/ubuntu/zookeeper-data
    clientPort=2181

The **storm.yaml** of my master node:

     storm.zookeeper.servers:
         - "10.0.0.230"
     storm.zookeeper.port: 2181

     nimbus.host: "localhost"
     nimbus.thrift.port: 6627
     nimbus.task.launch.secs: 240

     supervisor.worker.start.timeout.secs: 240
     supervisor.worker.timeout.secs: 240

     storm.local.dir: "/home/ubuntu/storm/data"
     java.library.path: "/usr/lib/jvm/java-7-oracle"


The **storm.yaml** of my slave node:

     storm.zookeeper.server:
         - "10.0.0.230"
     storm.zookeeper.port: 2181
     nimbus.host: "10.0.0.230"
     nimbus.thrift.port: 6627

     storm.local.dir: "/home/ubuntu/storm/data"
     java.library.path: "/usr/lib/jvm/java-7-oracle"

     supervisor.slots.ports:
         - 6700
         - 6701
         - 6702
         - 6703
         - 6704

I had use ***zkCli.sh -server 10.0.0.230:2181*** to connect to the
zookeeper at the master node, it works fine:

    2015-05-04 03:40:20,866 [myid:] - INFO  [main:ZooKeeper@438] -
Initiating client connection, connectString=10.0.0.230:2181
sessionTimeout=30000
watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@63f78dde
    2015-05-04 03:40:20,888 [myid:] - INFO  [main-SendThread(10.0.0.230:2181
):ClientCnxn$SendThread@975] - Opening socket connection to server
10.0.0.230/10.0.0.230:2181. Will not attempt to authenticate using SASL
(unknown error)
    Welcome to ZooKeeper!
    2015-05-04 03:40:20,900 [myid:] - INFO  [main-SendThread(10.0.0.230:2181
):ClientCnxn$SendThread@852] - Socket connection established to
10.0.0.230/10.0.0.230:2181, initiating session
    JLine support is enabled
    2015-05-04 03:40:20,918 [myid:] - INFO  [main-SendThread(10.0.0.230:2181
):ClientCnxn$SendThread@1235] - Session establishment complete on server
10.0.0.230/10.0.0.230:2181, sessionid = 0x14d1ca1ab73001c, negotiated
timeout = 30000

    WATCHER::

    WatchedEvent state:SyncConnected type:None path:null
    [zk: 10.0.0.230:2181(CONNECTED) 0]

So, why in the *Cluster Summary* of Storm UI, there is 0 supervisor, 0 used
slots, 0 free slots, 0 executors & 0 tasks ?
Why it uses the supervisor slot ports of the master node, instead of the
slave node?

When I click the **production-topology** in the *Topology Summary* of Storm
UI, there is 0 Num workers, 0 Num executors, 0 Num tasks?
Why there is no info display for Spouts & Bolts?

Re: Unable to use remote slave node in Apache Storm cluster

Posted by Chun Yuen Lim <li...@siswa.um.edu.my>.
Sorry I didn't make my statement clear. Before I removed my strom.yaml, the
slave node already looking for zookeeper on local host, although in my
storm.yaml, the storm.zookeeper.server is pointing to my master node, which
mean that is actually my storm.yaml didn't overwrite the default conf for
the zookeeper node.
storm.zookeeper.server:

     - "10.0.0.230"
 storm.zookeeper.port: 2181

Re: Unable to use remote slave node in Apache Storm cluster

Posted by bhargav sarvepalli <bo...@gmail.com>.
storm.yaml overriedes the default conf, so if you remove it must be looking
for a zookeeper on local host

On Thu, May 7, 2015 at 3:18 PM, Chun Yuen Lim <li...@siswa.um.edu.my>
wrote:

> I had updated the supervisor log of slave node in below:
>
> http://stackoverflow.com/questions/30022525/unable-to-use-remote-slave-node-in-apache-storm-cluster
>
>
> As mentioned, the supervisor of slave node didn't register itself to the
> zookeeper of the master node, instead, it register itself at its own,
> 127.0.0.1:2181. aAlthough I had remove the zookeeper and also the
> storm.yaml for the slave node, the same problem arise as if there is a
> default storm.yaml running when there is no storm.yaml in storm/conf.
>

Re: Unable to use remote slave node in Apache Storm cluster

Posted by Chun Yuen Lim <li...@siswa.um.edu.my>.
I had updated the supervisor log of slave node in below:
http://stackoverflow.com/questions/30022525/unable-to-use-remote-slave-node-in-apache-storm-cluster


As mentioned, the supervisor of slave node didn't register itself to the
zookeeper of the master node, instead, it register itself at its own,
127.0.0.1:2181. aAlthough I had remove the zookeeper and also the
storm.yaml for the slave node, the same problem arise as if there is a
default storm.yaml running when there is no storm.yaml in storm/conf.

Re: Unable to use remote slave node in Apache Storm cluster

Posted by Jeff Maass <JM...@cccis.com>.
"0 free slots”
explains why there are no workers.

I would start by removing references to “localhost” to use the external ip.

It sounds to me like you have guessed what I did, that your supervisor node is not connecting to the cluster.  What do the logs of your supervisor instance on 10.0.0.79 show?  Perhaps there are some errors that will get you started on the path to getting your node connected.




From: Chun Yuen Lim <li...@siswa.um.edu.my>>
Reply-To: "user@storm.apache.org<ma...@storm.apache.org>" <us...@storm.apache.org>>
Date: 2015,Monday, May 4 at 01:36
To: "user@storm.apache.org<ma...@storm.apache.org>" <us...@storm.apache.org>>, CHEE SUN LIEW <cs...@um.edu.my>>
Subject: Unable to use remote slave node in Apache Storm cluster

I'm following http://jayatiatblogs.blogspot.com/2011/11/storm-installation.html to try configuring Apache Storm remote cluster using few virtual machine (EC2) with Ubuntu 14.04 LTS on Amazon Web Services.

My master node is 10.0.0.230, my slave node is 10.0.0.79. My zookeeper reside in my master node. When I use ***storm jar storm-starter-0.9.4-jar-with-dependencies.jar storm.starter.RollingTopWords production-topology remote*** in master node, the message below appear, indicating it is successfully submitted:

    339  [main] INFO  storm.starter.RollingTopWords - Topology name: production-topology
    377  [main] INFO  storm.starter.RollingTopWords - Running in remote (cluster) mode
    651  [main] INFO  backtype.storm.StormSubmitter - Jar not uploaded to master yet. Submitting jar...
    655  [main] INFO  backtype.storm.StormSubmitter - Uploading topology jar storm-starter-0.9.4-jar-with-dependencies.jar to assigned location: /home/ubuntu/storm/data/nimbus/inbox/stormjar-380bb1a2-1699-4ad1-8341-3d4b92c14764.jar
    672  [main] INFO  backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: /home/ubuntu/storm/data/nimbus/inbox/stormjar-380bb1a2-1699-4ad1-8341-3d4b92c14764.jar
    672  [main] INFO  backtype.storm.StormSubmitter - Submitting topology production-topology in distributed mode with conf {"topology.debug":true}
    714  [main] INFO  backtype.storm.StormSubmitter - Finished submitting topology: production-topology

The Stoum UI & ***storm list*** command show that the topology is active:

    Topology_name        Status     Num_tasks  Num_workers  Uptime_secs
    -------------------------------------------------------------------
    production-topology  ACTIVE     0          0            59

However, in the *Cluster Summary* of Storm UI, there is 0 supervisor, 0 used slots, 0 free slots, 0 executors & 0 tasks. In the *Topology Configuration*, the **supervisor.slots.ports** show that it uses the default supervisor slot ports of the master node, instead of the supervisor slot ports of the slave node.

Below are my **zoo.cfg** of my master node:

    tickTime=2000
    dataDir=/home/ubuntu/zookeeper-data
    clientPort=2181

The **storm.yaml** of my master node:

     storm.zookeeper.servers:
         - "10.0.0.230"
     storm.zookeeper.port: 2181

     nimbus.host: "localhost"
     nimbus.thrift.port: 6627
     nimbus.task.launch.secs: 240

     supervisor.worker.start.timeout.secs: 240
     supervisor.worker.timeout.secs: 240

     storm.local.dir: "/home/ubuntu/storm/data"
     java.library.path: "/usr/lib/jvm/java-7-oracle"


The **storm.yaml** of my slave node:

     storm.zookeeper.server:
         - "10.0.0.230"
     storm.zookeeper.port: 2181
     nimbus.host: "10.0.0.230"
     nimbus.thrift.port: 6627

     storm.local.dir: "/home/ubuntu/storm/data"
     java.library.path: "/usr/lib/jvm/java-7-oracle"

     supervisor.slots.ports:
         - 6700
         - 6701
         - 6702
         - 6703
         - 6704

I had use ***zkCli.sh -server 10.0.0.230:2181*** to connect to the zookeeper at the master node, it works fine:

    2015-05-04 03:40:20,866 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=10.0.0.230:2181<http://10.0.0.230:2181> sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@63f78dde
    2015-05-04 03:40:20,888 [myid:] - INFO  [main-SendThread(10.0.0.230:2181):ClientCnxn$SendThread@975] - Opening socket connection to server 10.0.0.230/10.0.0.230:2181<http://10.0.0.230/10.0.0.230:2181>. Will not attempt to authenticate using SASL (unknown error)
    Welcome to ZooKeeper!
    2015-05-04 03:40:20,900 [myid:] - INFO  [main-SendThread(10.0.0.230:2181):ClientCnxn$SendThread@852] - Socket connection established to 10.0.0.230/10.0.0.230:2181<http://10.0.0.230/10.0.0.230:2181>, initiating session
    JLine support is enabled
    2015-05-04 03:40:20,918 [myid:] - INFO  [main-SendThread(10.0.0.230:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 10.0.0.230/10.0.0.230:2181<http://10.0.0.230/10.0.0.230:2181>, sessionid = 0x14d1ca1ab73001c, negotiated timeout = 30000

    WATCHER::

    WatchedEvent state:SyncConnected type:None path:null
    [zk: 10.0.0.230:2181(CONNECTED) 0]

So, why in the *Cluster Summary* of Storm UI, there is 0 supervisor, 0 used slots, 0 free slots, 0 executors & 0 tasks ?
Why it uses the supervisor slot ports of the master node, instead of the slave node?

When I click the **production-topology** in the *Topology Summary* of Storm UI, there is 0 Num workers, 0 Num executors, 0 Num tasks?
Why there is no info display for Spouts & Bolts?