Amit Sela created BEAM-610:
------------------------------

             Summary: Enable spark's checkpointing mechanism for driver-failure 
recovery in streaming
                 Key: BEAM-610
                 URL: https://issues.apache.org/jira/browse/BEAM-610
             Project: Beam
          Issue Type: Bug
          Components: runner-spark
            Reporter: Amit Sela
            Assignee: Amit Sela


For streaming applications, Spark provides a checkpoint mechanism useful for 
stateful processing and driver failures. See: 
https://spark.apache.org/docs/1.6.2/streaming-programming-guide.html#checkpointing

This requires the "lambdas", or the content of DStream/RDD functions to be 
Serializable - currently, the runner a lot of the translation work in streaming 
to the batch translator, which can no longer be the case because it passes 
along non-serializables.

This also requires wrapping the creation of the streaming application's graph 
in a "getOrCreate" manner. See: 
https://spark.apache.org/docs/1.6.2/streaming-programming-guide.html#how-to-configure-checkpointing

Another limitation is the need to wrap Accumulators and Broadcast variables in 
Singletons in order for them to be re-created once stale after recovery.

This work is a prerequisite to support PerKey workflows, which will be support 
via Spark's stateful operators such as mapWithState.   



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to