We are working on way to try to improve this by having the grouping be aware of
the load downstream and try to route tuples locally unless it is overloaded and
then send them remotely.
- Bobby
On Tuesday, February 16, 2016 8:27 AM, Nathan Leung <[email protected]>
wrote:
My guess is this only happens because you have one executor per worker so
nothing is local to the spout anyways. If your component has number of
executors less than your number of workers it's often better to use shuffle
grouping. In your two worker example, half the tuples would stay local anyways
though obviously this decreases as you add workers.On Feb 16, 2016 5:23 AM,
"Spico Florin" <[email protected]> wrote:
Hi, Nathan! Thank you for your answer. You are right: the only bolts that are
used will be the ones located nearby the spout. The other two will be unused.
If we increase the number of workers to 5, then it will behave as
shuffleGrouping (distributing evenly among the bolts). I got it! Regards, Florin
On Mon, Feb 15, 2016 at 3:56 PM, Nathan Leung <[email protected]> wrote:
It will use the local bolts.
On Mon, Feb 15, 2016 at 8:32 AM, Spico Florin <[email protected]> wrote:
Hello! Suppose that I have the following scenario1. One spout2. One bolt with
hintParallelism set to 43. Bolt connected with the spout with
localOrShuffleGrouping4. 2 slots available5. We use the the default schedulder
(round-robin)
Give the above scenario, the distribution over the workers will be:worker 1:
spout, bolt, boltworker 2: bolt, bolt
Here are my questions:1. Will the spout uses the 4 bolts?2. Will the data
distributed evenly between these bolts?3. Due to localorShuffleGrouping method,
only the local bolts will be used (the ones from the worker 1) or all the
workers?
I look forward for your answers.Thank you. Florin