You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@spark.apache.org by Russell Cardullo <ru...@gmail.com> on 2013/09/20 18:07:21 UTC

Recovering from receiver failure in Spark streaming

Hello All,

When running Spark streaming 24/7, we will occasionally get errors in our receivers which causes the Spark driver program to de-register that receiver, yet continue running.

For instance, in the example 'spark.streaming.examples.NetworkWordCount' program, if the source for the network receiver is temporarily unavailable the driver will de-register the receiver but the driver will continue to run indefinitely.  If the source later becomes available again the receiver will not re-register.

Is there some easy means to catch this and re-register the receiver if it becomes available later?

Alternatively is there some way to catch the case where the receiver is lost and call stop() on the streaming context?

Cheers,
--Russell

Re: Recovering from receiver failure in Spark streaming

Posted by Vadim Chekan <ko...@gmail.com>.
Perhaps receiver needs to be failure-resistant itself. Spark does not know
what your application requirements are and what should be done in case of
network stream error. I would implement akka actor which switches into
connection retry mode upon network error and switches back into receiving
mode when connection restored.

Vadim.


On Fri, Sep 20, 2013 at 9:07 AM, Russell Cardullo <russellcardullo@gmail.com
> wrote:

> Hello All,
>
> When running Spark streaming 24/7, we will occasionally get errors in our
> receivers which causes the Spark driver program to de-register that
> receiver, yet continue running.
>
> For instance, in the example 'spark.streaming.examples.NetworkWordCount'
> program, if the source for the network receiver is temporarily unavailable
> the driver will de-register the receiver but the driver will continue to
> run indefinitely.  If the source later becomes available again the receiver
> will not re-register.
>
> Is there some easy means to catch this and re-register the receiver if it
> becomes available later?
>
> Alternatively is there some way to catch the case where the receiver is
> lost and call stop() on the streaming context?
>
> Cheers,
> --Russell




-- 
>From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT is
explicitly specified