I meant workers and not supervisor. Sorry for the confusion.

On Mon, 30 Oct 2017 at 13:32 Noppanit Charassinvichai <noppani...@gmail.com>
wrote:

> Ah sorry I mixed up supervisor and workers. Those are all workers.
>
> On Mon, 30 Oct 2017 at 13:06 Priyank Shah <ps...@hortonworks.com> wrote:
>
>> Hi Noppanit,
>>
>>
>>
>> Supervisor processes do not run your spouts and bolts. If those CPU usage
>> percentages are for supervisor processes, you should check the same for
>> worker processes. Hope this helps.
>>
>>
>>
>> *From: *Noppanit Charassinvichai <noppani...@gmail.com>
>> *Reply-To: *"user@storm.apache.org" <user@storm.apache.org>
>> *Date: *Monday, October 30, 2017 at 7:52 AM
>> *To: *"user@storm.apache.org" <user@storm.apache.org>
>> *Subject: *How to distribute the wordload equally for Storm Cluster
>>
>>
>>
>> Hi!
>>
>>
>>
>> I have a storm cluster which process events from Kinesis and forward
>> events to other Kinesis Streams and Druid. I have 9 supervisors running. My
>> process is mostly CPU bound because it's just forwarding events.
>>
>>
>>
>> I noticed that all of my supervisors are not working equally.
>>
>>
>>
>> 4 of them running at 40% CPU
>>
>> 4 of them running at 12% CPU
>>
>> 1 is barely touching 8%
>>
>>
>>
>> I wonder if there's a way to equally distribute the work load so I can
>> reduce the number of supervisor running.
>>
>>
>>
>> Here's the details of my clusters
>>
>>
>>
>> - I'm running one Topology only so I'm not sharing resources.
>>
>> - I'm running 158 Executors
>>
>>  - 60 for Kinesis Spout
>>
>>  - 25 to Parse the events
>>
>>  - 45 to Send to one Kinesis Stream
>>
>>  - 15 to Send to another Kinesis Stream (It has significantly fewer
>> events)
>>
>>  - 4 to Send to Druid
>>
>>
>>
>> The complete latency is around 140ms which is pretty good.
>>
>>
>>
>> I have also attached the screenshot of my cluster
>>
>>
>>
>> Here's the topology configuration
>>
>>
>>
>>     builder.setSpout("kinesis_spout", spout,
>> parseInt(property.getSpoutExecutorNumber()));
>>
>>
>>
>>         builder.setBolt("parse_bolt", new ParsingDruidBolt(),
>> parseInt(property.getDruidParseBoltExecutorNumber()))
>>
>>                 .shuffleGrouping("kinesis_spout");
>>
>>
>>
>>         builder.setBolt("send_to_kinesis", new EmitPageViewBolt(),
>> property.getPageViewBoltExecutorNumber())
>>
>>                 .shuffleGrouping("parse_bolt", STREAM_PAGE_VIEW);
>>
>>
>>
>>         builder.setBolt("send_to_variations_kinesis", new
>> EmitVariationsBolt(), property.getVariationsBoltExecutorNumber())
>>
>>                 .shuffleGrouping("parse_bolt", STREAM_VARIATIONS);
>>
>>
>>
>>         builder.setBolt("sparrow_firehose", new BeamBolt<>(new
>> DruidBeamFactory(topologyConfig)),
>> parseInt(property.getDruidSparrowBoltExecutorNumber()))
>>
>>                 .shuffleGrouping("parse_bolt", STREAM_EVENT);
>>
>> [image: creen Shot 2017-10-30 at 10.48.15 AM.png]
>>
>

Reply via email to