Mike Kaplinskiy created BEAM-5682:
-------------------------------------

             Summary: Reshuffle causes brittle pipelines on Spark runner
                 Key: BEAM-5682
                 URL: https://issues.apache.org/jira/browse/BEAM-5682
             Project: Beam
          Issue Type: Bug
          Components: runner-spark
            Reporter: Mike Kaplinskiy
            Assignee: Amit Sela


The latest Spark releases have a bug which makes calls to {{repartition}} 
non-retriable (https://issues.apache.org/jira/browse/SPARK-25341) as a fix to 
https://issues.apache.org/jira/browse/SPARK-23243. Beam uses repartition as the 
implementation of {{Reshuffle}}. This makes beam-based spark pipelines not 
resilient when using {{Reshuffle}} - a single executor failure kills the entire 
pipeline.

The fix that I have locally is just to remove the special-casing of 
{{Reshuffle}} in the spark runner 
(https://github.com/apache/beam/blob/279a05604b83a54e8e5a79e13d8761f94841f326/runners/spark/src/main/java/org/apache/beam/runners/spark/translation/TransformTranslator.java#L579).
 The reshuffle default expansion seems to do a fine job in reshuffling & the 
pipeline becomes resilient to executor failures.

I'm not entirely sure if this is a beam bug or not, but I figure it's worth 
making others aware of the current behavior.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to