storm-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander T <mittspamko...@gmail.com>
Subject Re: initState method not invoked in Storm 1.0
Date Fri, 15 Apr 2016 09:32:44 GMT
Hi Arun,

Yes, that is one way of getting it wrong. Another way is assigning your
bolt to a variable of a stateless type before doing setBolt. Since Java
lacks dynamic dispatch, the stateless overload will be chosen in that case.

Regards,
Alex
On Apr 15, 2016 11:16 AM, "Arun Mahadevan" <arunm@apache.org> wrote:

> Ah, I see what you mean. The “setBolt” method without parallelism hint is
> not overloaded for stateful bolts so if parallelism hint is not specified
> it ends up as being normal bolt. Will raise a JIRA for fixing this.
>
> Spico,
>
> For now, can you provide parallelism hint while you add stateful bolt to
> the topology ?
>
> Thanks,
> Arun
>
> From: Alexander T
> Reply-To: "user@storm.apache.org"
> Date: Friday, April 15, 2016 at 2:38 PM
> To: "user@storm.apache.org"
> Subject: Re: initState method not invoked in Storm 1.0
>
> Hi Arun,
>
> I meant that it's very easy to use the wrong setBolt method overload by
> mistake, since stateful bolts are supertypes of stateless ones.
>
> Regards
> Alex
> On Apr 15, 2016 10:54 AM, "Arun Mahadevan" <arunm@apache.org> wrote:
>
> Its the same method (builder.setBolt) that adds stateful bolts to a
> topology. Heres an example -
> https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/storm/starter/StatefulTopology.java
>
> Spico,
>
> Do you see any errors in the logs ? You might want to turn on debug logs
> and see whats happening. Can you also try running the StatefulTopology in
> the storm-starter and check if you see the same behavior ?
>
> Thanks,
> Arun
>
> From: Alexander T
> Reply-To: "user@storm.apache.org"
> Date: Friday, April 15, 2016 at 2:06 PM
> To: "user@storm.apache.org"
> Subject: Re: initState method not invoked in Storm 1.0
>
> Hi Spico,
>
> Are you adding your bolt to the topology with the special methods for
> stateful bolts? It's quite easy to use the regular addBolt method and it
> will in that case be treated as a stateless one.
>
> Cheers
> Alex
> On Apr 15, 2016 10:33 AM, "Spico Florin" <spicoflorin@gmail.com> wrote:
>
>> Hello!
>>   I'm running a topology in LocalCluster that has a stasteful Bolt. Wile
>> debugging, I have observed that the initState method is not invoked at all.
>> The documentation said:
>> "The initState method is invoked by the framework during the bolt
>> initialization with the previously saved state of the bolt. This is invoked
>> after prepare but before the bolt starts processing any tuples".
>>
>> Due to this, the state field remains null and I get NPE when I populate
>> it with state .put
>> Any idea why the initState is not invoked?
>> Regards,
>>  Florin
>>
>> Here is my code:
>>
>> public class TimeSeriesStatefulBolt extends
>> BaseStatefulBolt<KeyValueState<Long, Map<String, Float>>> {
>>
>> private KeyValueState<Long, Map<String, Float>> state;
>> @Override
>> public void initState(KeyValueState<Long, Map<String, Float>> state)
{
>> this.state = state;
>> }
>>
>

Mime
View raw message