Is it possible/recommended to run multiple nimbus servers?We have multiple zookeeper servers, and multiple servers for supervisors/workers, but are not sure what the best practices are with regards to nimbus.
I've had storm running on a single server for 60+ days with topologies processing production stream data without any issues, but now we are about to roll out product features that depend on the storm analysis data so just looking to protect my a$$ a bit ;-)
Just to clarify what Ashley said: if Storm doesn't have enough worker slots to run a topology, it will "pack" all the tasks for that topology into whatever slots there are on the cluster. Then, when there are more worker slots available (like you add another machine), it will redistribute the tasks to the proper number of workers. Of course, running a topology with less workers than intended will probably lead to performance problems. So it's best practice to have extra capacity available to handle any failures.
On Wednesday, December 14, 2011 12:51:53 AM UTC-8, nathanmarz wrote:Just to clarify what Ashley said: if Storm doesn't have enough worker slots to run a topology, it will "pack" all the tasks for that topology into whatever slots there are on the cluster. Then, when there are more worker slots available (like you add another machine), it will redistribute the tasks to the proper number of workers. Of course, running a topology with less workers than intended will probably lead to performance problems. So it's best practice to have extra capacity available to handle any failures.
I'm new to storm and we will use this for our production pipeline. I set up a small cluster using 5 machines like this
nimbus --- zk --- 3 workers with each worker has 4 default slots
then when I tried the wordcount topology, I noticed that there are actually 26 executors - 5 spouts + 8 split + 12 count + 1 ack.
However, it only uses 3 slots, and it looks like all those 26 tasks are just executed on the 3 slots it took, kind of a roundrobin
fashion.
Could you please elaborate this a little more about this behavior? why didn't it use more slots? is it because I use 1 spout and 2 bolts
so 1+2 = 3? how did storm schedule those 26 tasks on those 3 slots? is it like spouts could pause sometime to let split/count run and
later resume?
Your opinion will be greatly appreciated!
thanks,
Rui
On Tue, Dec 13, 2011 at 11:32 AM, Ashley Brown <ash...@spider.io> wrote:I've had storm running on a single server for 60+ days with topologies processing production stream data without any issues, but now we are about to roll out product features that depend on the storm analysis data so just looking to protect my a$$ a bit ;-)I fully appreciate the need to do that ;)Make sure you've got enough extra capacity to cope with a machine being taken out, otherwise the topologies get stuck in a weird limbo until you kick it back into life.We overloaded the system a bit during testing (so the OOM killer would randomly take out nimbus, supervisors and workers) and it all seemed happy enough, in our case using monit to bring the nimbus/supervisor processes back up.Of course this all relies on having a spout which supports the reliability API, and correctly building the tuple tree.A--
Twitter: @nathanmarz
http://nathanmarz.com
--
You received this message because you are subscribed to the Google Groups "storm-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to storm-user+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.